[Pkg-electronics-devel] Bug#1070885: openocd: FTBFS with libgpiod/2.1
Gavin Lai (=?UTF-8?Q?=E8=B3=B4=E5=BB=BA=E5=AE=87?=)
gavin09 at gmail.com
Sat May 11 08:35:36 BST 2024
Source: openocd
Version: 0.12.0-1
Severity: important
Dear Maintainer,
I am planning to have a transition for libgpiod.
https://release.debian.org/transitions/html/auto-libgpiod.html
Many APIs were changed in this transition.
I tested libgpiod with openocd 0.12.0.
As a result, it seems FTBFS. Please have a check.
Feel free to let me know if any information is needed.
Thanks.
=====
/bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I./src -I./src -DPKGDATADIR=\"/usr/share/openocd\" -DBINDIR=\"/usr/bin\" -isystem /usr/include/libusb-1.0 -I/usr/include/libftdi1 -I/usr/include/libusb-1.0 -I/usr/include/hidapi -I/usr/include/libusb-1.0 -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wstrict-prototypes -Wformat-security -Wshadow -Wextra -Wno-unused-parameter -Wbad-function-cast -Wcast-align -Wredundant-decls -Wpointer-arith -Wundef -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/openocd-0.12.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o src/jtag/drivers/libocdjtagdrivers_la-ft232r.lo `test -f 'src/jtag/drivers/ft232r.c' || echo './'`src/jtag/drivers/ft232r.c
src/jtag/drivers/linuxgpiod.c: In function 'linuxgpiod_read':
src/jtag/drivers/linuxgpiod.c:51:18: error: implicit declaration of function 'gpiod_line_get_value'; did you mean 'gpiod_line_request_get_value'? [-Werror=implicit-function-declaration]
51 | retval = gpiod_line_get_value(gpiod_line[ADAPTER_GPIO_IDX_TDO]);
| ^~~~~~~~~~~~~~~~~~~~
| gpiod_line_request_get_value
src/jtag/drivers/linuxgpiod.c: In function 'linuxgpiod_write':
src/jtag/drivers/linuxgpiod.c:84:26: error: implicit declaration of function 'gpiod_line_set_value'; did you mean 'gpiod_line_request_set_value'? [-Werror=implicit-function-declaration]
84 | retval = gpiod_line_set_value(gpiod_line[ADAPTER_GPIO_IDX_TDI], tdi);
| ^~~~~~~~~~~~~~~~~~~~
| gpiod_line_request_set_value
src/jtag/drivers/linuxgpiod.c: In function 'linuxgpiod_swdio_drive':
src/jtag/drivers/linuxgpiod.c:131:9: error: implicit declaration of function 'gpiod_line_release'; did you mean 'gpiod_line_request_release'? [-Werror=implicit-function-declaration]
131 | gpiod_line_release(gpiod_line[ADAPTER_GPIO_IDX_SWDIO]);
| ^~~~~~~~~~~~~~~~~~
| gpiod_line_request_release
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I./src -I./src -DPKGDATADIR=\"/usr/share/openocd\" -DBINDIR=\"/usr/bin\" -isystem /usr/include/libusb-1.0 -I/usr/include/libftdi1 -I/usr/include/libusb-1.0 -I/usr/include/hidapi -I/usr/include/libusb-1.0 -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wstrict-prototypes -Wformat-security -Wshadow -Wextra -Wno-unused-parameter -Wbad-function-cast -Wcast-align -Wredundant-decls -Wpointer-arith -Wundef -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/openocd-0.12.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c src/jtag/drivers/ft232r.c -o src/jtag/drivers/libocdjtagdrivers_la-ft232r.o
src/jtag/drivers/linuxgpiod.c:139:26: error: implicit declaration of function 'gpiod_line_request_output'; did you mean 'gpiod_line_request_get_fd'? [-Werror=implicit-function-declaration]
139 | retval = gpiod_line_request_output(gpiod_line[ADAPTER_GPIO_IDX_SWDIO], "OpenOCD", 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| gpiod_line_request_get_fd
src/jtag/drivers/linuxgpiod.c:143:26: error: implicit declaration of function 'gpiod_line_request_input'; did you mean 'gpiod_line_request_get_fd'? [-Werror=implicit-function-declaration]
143 | retval = gpiod_line_request_input(gpiod_line[ADAPTER_GPIO_IDX_SWDIO], "OpenOCD");
| ^~~~~~~~~~~~~~~~~~~~~~~~
| gpiod_line_request_get_fd
src/jtag/drivers/linuxgpiod.c: In function 'helper_get_line':
src/jtag/drivers/linuxgpiod.c:283:19: error: 'GPIOD_LINE_REQUEST_DIRECTION_INPUT' undeclared (first use in this function); did you mean 'GPIOD_LINE_DIRECTION_INPUT'?
283 | int dir = GPIOD_LINE_REQUEST_DIRECTION_INPUT, flags = 0, val = 0, retval;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| GPIOD_LINE_DIRECTION_INPUT
src/jtag/drivers/linuxgpiod.c:283:19: note: each undeclared identifier is reported only once for each function it appears in
src/jtag/drivers/linuxgpiod.c:285:27: error: implicit declaration of function 'gpiod_chip_open_by_number' [-Werror=implicit-function-declaration]
285 | gpiod_chip[idx] = gpiod_chip_open_by_number(adapter_gpio_config[idx].chip_num);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
src/jtag/drivers/linuxgpiod.c:285:25: warning: assignment to 'struct gpiod_chip *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
285 | gpiod_chip[idx] = gpiod_chip_open_by_number(adapter_gpio_config[idx].chip_num);
| ^
src/jtag/drivers/linuxgpiod.c:292:27: error: implicit declaration of function 'gpiod_chip_get_line'; did you mean 'gpiod_chip_get_info'? [-Werror=implicit-function-declaration]
292 | gpiod_line[idx] = gpiod_chip_get_line(gpiod_chip[idx], adapter_gpio_config[idx].gpio_num);
| ^~~~~~~~~~~~~~~~~~~
| gpiod_chip_get_info
src/jtag/drivers/linuxgpiod.c:292:25: warning: assignment to 'struct gpiod_line *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
292 | gpiod_line[idx] = gpiod_chip_get_line(gpiod_chip[idx], adapter_gpio_config[idx].gpio_num);
| ^
src/jtag/drivers/linuxgpiod.c:303:23: error: 'GPIOD_LINE_REQUEST_DIRECTION_OUTPUT' undeclared (first use in this function); did you mean 'GPIOD_LINE_DIRECTION_OUTPUT'?
303 | dir = GPIOD_LINE_REQUEST_DIRECTION_OUTPUT;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| GPIOD_LINE_DIRECTION_OUTPUT
src/jtag/drivers/linuxgpiod.c:316:26: error: 'GPIOD_LINE_REQUEST_FLAG_OPEN_DRAIN' undeclared (first use in this function); did you mean 'GPIOD_LINE_DRIVE_OPEN_DRAIN'?
316 | flags |= GPIOD_LINE_REQUEST_FLAG_OPEN_DRAIN;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| GPIOD_LINE_DRIVE_OPEN_DRAIN
src/jtag/drivers/linuxgpiod.c:319:26: error: 'GPIOD_LINE_REQUEST_FLAG_OPEN_SOURCE' undeclared (first use in this function); did you mean 'GPIOD_LINE_DRIVE_OPEN_SOURCE'?
319 | flags |= GPIOD_LINE_REQUEST_FLAG_OPEN_SOURCE;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| GPIOD_LINE_DRIVE_OPEN_SOURCE
In file included from ./src/jtag/jtag.h:15,
from ./src/jtag/interface.h:17,
from src/jtag/drivers/linuxgpiod.c:18:
src/jtag/drivers/linuxgpiod.c:334:53: error: implicit declaration of function 'gpiod_version_string' [-Werror=implicit-function-declaration]
334 | adapter_gpio_get_name(idx), gpiod_version_string());
| ^~~~~~~~~~~~~~~~~~~~
./src/helper/log.h:121:70: note: in definition of macro 'LOG_WARNING'
121 | log_printf_lf(LOG_LVL_WARNING, __FILE__, __LINE__, __func__, expr)
| ^~~~
src/jtag/drivers/linuxgpiod.c:333:29: warning: format '%s' expects argument of type 'char *', but argument 7 has type 'int' [-Wformat=]
333 | LOG_WARNING("linuxgpiod: ignoring request for pull-up on %s: not supported by gpiod v%s",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
334 | adapter_gpio_get_name(idx), gpiod_version_string());
| ~~~~~~~~~~~~~~~~~~~~~~
| |
| int
./src/helper/log.h:121:70: note: in definition of macro 'LOG_WARNING'
121 | log_printf_lf(LOG_LVL_WARNING, __FILE__, __LINE__, __func__, expr)
| ^~~~
src/jtag/drivers/linuxgpiod.c:333:103: note: format string is defined here
333 | LOG_WARNING("linuxgpiod: ignoring request for pull-up on %s: not supported by gpiod v%s",
| ~^
| |
| char *
| %d
src/jtag/drivers/linuxgpiod.c:341:29: warning: format '%s' expects argument of type 'char *', but argument 7 has type 'int' [-Wformat=]
341 | LOG_WARNING("linuxgpiod: ignoring request for pull-down on %s: not supported by gpiod v%s",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
342 | adapter_gpio_get_name(idx), gpiod_version_string());
| ~~~~~~~~~~~~~~~~~~~~~~
| |
| int
./src/helper/log.h:121:70: note: in definition of macro 'LOG_WARNING'
121 | log_printf_lf(LOG_LVL_WARNING, __FILE__, __LINE__, __func__, expr)
| ^~~~
src/jtag/drivers/linuxgpiod.c:341:105: note: format string is defined here
341 | LOG_WARNING("linuxgpiod: ignoring request for pull-down on %s: not supported by gpiod v%s",
| ~^
| |
| char *
| %d
src/jtag/drivers/linuxgpiod.c:348:26: error: 'GPIOD_LINE_REQUEST_FLAG_ACTIVE_LOW' undeclared (first use in this function)
348 | flags |= GPIOD_LINE_REQUEST_FLAG_ACTIVE_LOW;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/jtag/drivers/linuxgpiod.c:350:16: error: variable 'config' has initializer but incomplete type
350 | struct gpiod_line_request_config config = {
| ^~~~~~~~~~~~~~~~~~~~~~~~~
src/jtag/drivers/linuxgpiod.c:351:18: error: 'struct gpiod_line_request_config' has no member named 'consumer'
351 | .consumer = "OpenOCD",
| ^~~~~~~~
src/jtag/drivers/linuxgpiod.c:351:29: warning: excess elements in struct initializer
351 | .consumer = "OpenOCD",
| ^~~~~~~~~
src/jtag/drivers/linuxgpiod.c:351:29: note: (near initialization for 'config')
src/jtag/drivers/linuxgpiod.c:352:18: error: 'struct gpiod_line_request_config' has no member named 'request_type'
352 | .request_type = dir,
| ^~~~~~~~~~~~
src/jtag/drivers/linuxgpiod.c:352:33: warning: excess elements in struct initializer
352 | .request_type = dir,
| ^~~
src/jtag/drivers/linuxgpiod.c:352:33: note: (near initialization for 'config')
src/jtag/drivers/linuxgpiod.c:353:18: error: 'struct gpiod_line_request_config' has no member named 'flags'
353 | .flags = flags,
| ^~~~~
src/jtag/drivers/linuxgpiod.c:353:26: warning: excess elements in struct initializer
353 | .flags = flags,
| ^~~~~
src/jtag/drivers/linuxgpiod.c:353:26: note: (near initialization for 'config')
src/jtag/drivers/linuxgpiod.c:350:42: error: storage size of 'config' isn't known
350 | struct gpiod_line_request_config config = {
| ^~~~~~
src/jtag/drivers/linuxgpiod.c:356:18: error: implicit declaration of function 'gpiod_line_request'; did you mean 'gpiod_line_request_get_fd'? [-Werror=implicit-function-declaration]
356 | retval = gpiod_line_request(gpiod_line[idx], &config, val);
| ^~~~~~~~~~~~~~~~~~
| gpiod_line_request_get_fd
src/jtag/drivers/linuxgpiod.c:350:42: warning: unused variable 'config' [-Wunused-variable]
350 | struct gpiod_line_request_config config = {
| ^~~~~~
cc1: some warnings being treated as errors
make[4]: *** [Makefile:3707: src/jtag/drivers/libocdjtagdrivers_la-linuxgpiod.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/build/openocd-0.12.0'
make[3]: *** [Makefile:5013: all-recursive] Error 1
make[3]: Leaving directory '/build/openocd-0.12.0'
make[2]: *** [Makefile:2113: all] Error 2
make[2]: Leaving directory '/build/openocd-0.12.0'
dh_auto_build: error: make -j2 all pdf html returned exit code 2
make[1]: *** [debian/rules:62: override_dh_auto_build] Error 25
make[1]: Leaving directory '/build/openocd-0.12.0'
make: *** [debian/rules:68: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
I: copying local configuration
E: Failed autobuilding of package
I: unmounting dev/ptmx filesystem
I: unmounting dev/pts filesystem
I: unmounting dev/shm filesystem
I: unmounting proc filesystem
I: unmounting sys filesystem
I: cleaning the build env
I: removing directory /var/cache/pbuilder/build/3420889 and its subdirectories
=====
More information about the Pkg-electronics-devel
mailing list