* [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service
@ 2024-01-16 13:51 Emil Velikov via B4 Relay
2024-01-16 13:51 ` [PATCH BlueZ 01/10] build: remove unused AM_CONDITIONAL Emil Velikov via B4 Relay
` (10 more replies)
0 siblings, 11 replies; 19+ messages in thread
From: Emil Velikov via B4 Relay @ 2024-01-16 13:51 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Emil Velikov
Hello everyone,
While looking at our bluez package for the SteamDeck a handful of
paper cuts stood out. Here we tackle the build related ones - a couple
more series will be incoming shortly.
In a gist we have the following:
- remove manual tracking of .services.in, DEPENDENCIES
- remove unused variables
- polish PKG_CHECK_MODULES handling
- enable linker garbage collection
- create a symlink to dbus-org.bluez.obex.service
The last change is slightly out of topic here, although since there's
a high chance of merge conflicts, I've added it here. Let me know if
you'd like it send out as separate series.
This is my first time diving into bluez, so any comments and input is
greatly appreciated.
Thanks
Emil
---
Emil Velikov (10):
build: remove unused AM_CONDITIONAL
build: tweak PKG_CHECK_MODULES calls
build: require libudev 196, circa 2012
build: remove dummy {conf,state}{dir,_DATA}
build: remove unused variable builtin_nodist
build: remove .service files from DEPENDENCIES lists
build: remove explicit DEPENDENCIES handling
build: manage .service.in files via configure.ac
build: enable gc/dead code removal
build: install dbus-org.bluez.obex.service symlink
Makefile.am | 31 ++--------------
Makefile.mesh | 7 +---
Makefile.obexd | 10 ++++--
Makefile.tools | 6 ----
acinclude.m4 | 2 ++
configure.ac | 75 ++++++++++++---------------------------
mesh/bluetooth-mesh.service.in | 2 +-
monitor/hwdb.c | 2 +-
obexd/src/obex.service.in | 2 +-
src/bluetooth.service.in | 2 +-
src/oui.c | 2 +-
tools/bluetooth-logger.service.in | 2 +-
12 files changed, 43 insertions(+), 100 deletions(-)
---
base-commit: 770ad5614e7e8074133e6f563495ce4822f63fe4
change-id: 20240116-autofoo-db2fe2c70951
Best regards,
--
Emil Velikov <emil.l.velikov@gmail.com>
^ permalink raw reply [flat|nested] 19+ messages in thread* [PATCH BlueZ 01/10] build: remove unused AM_CONDITIONAL 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay @ 2024-01-16 13:51 ` Emil Velikov via B4 Relay 2024-01-16 15:41 ` Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service bluez.test.bot 2024-01-16 13:51 ` [PATCH BlueZ 02/10] build: tweak PKG_CHECK_MODULES calls Emil Velikov via B4 Relay ` (9 subsequent siblings) 10 siblings, 1 reply; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:51 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> --- configure.ac | 1 - 1 file changed, 1 deletion(-) diff --git a/configure.ac b/configure.ac index 3e10ec970..307a2f30c 100644 --- a/configure.ac +++ b/configure.ac @@ -238,7 +238,6 @@ if (test "${enable_tools}" != "no" && test "${enable_udev}" != "no"); then AC_DEFINE(HAVE_UDEV_HWDB_NEW, 1, [Define to 1 if you have the udev_hwdb_new() function.])) fi -AM_CONDITIONAL(UDEV, test "${enable_udev}" != "no") AC_ARG_WITH([udevdir], AS_HELP_STRING([--with-udevdir=DIR], [path to udev directory]), [path_udevdir=${withval}]) -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* RE: Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service 2024-01-16 13:51 ` [PATCH BlueZ 01/10] build: remove unused AM_CONDITIONAL Emil Velikov via B4 Relay @ 2024-01-16 15:41 ` bluez.test.bot 0 siblings, 0 replies; 19+ messages in thread From: bluez.test.bot @ 2024-01-16 15:41 UTC (permalink / raw) To: linux-bluetooth, devnull+emil.l.velikov.gmail.com [-- Attachment #1: Type: text/plain, Size: 46187 bytes --] This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=817218 ---Test result--- Test Summary: CheckPatch PASS 2.49 seconds GitLint PASS 2.02 seconds BuildEll PASS 23.95 seconds BluezMake PASS 718.10 seconds MakeCheck PASS 11.95 seconds MakeDistcheck PASS 162.53 seconds CheckValgrind PASS 227.07 seconds CheckSmatch PASS 331.34 seconds bluezmakeextell PASS 108.66 seconds IncrementalBuild FAIL 2729.87 seconds ScanBuild FAIL 933.47 seconds Details ############################## Test: IncrementalBuild - FAIL Desc: Incremental build with the patches in the series Output: [BlueZ,04/10] build: remove dummy {conf,state}{dir,_DATA} tools/mgmt-tester.c: In function ‘main’: tools/mgmt-tester.c:12763:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 12763 | int main(int argc, char *argv[]) | ^~~~ unit/test-avdtp.c: In function ‘main’: unit/test-avdtp.c:766:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 766 | int main(int argc, char *argv[]) | ^~~~ unit/test-avrcp.c: In function ‘main’: unit/test-avrcp.c:989:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 989 | int main(int argc, char *argv[]) | ^~~~ /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start': (.text+0x24): undefined reference to `main' collect2: error: ld returned 1 exit status make[1]: *** [Makefile:5864: mesh/bluetooth-meshd] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:4674: all] Error 2 ############################## Test: ScanBuild - FAIL Desc: Run Scan Build Output: src/shared/gatt-client.c:451:21: warning: Use of memory after it is freed gatt_db_unregister(op->client->db, op->db_id); ^~~~~~~~~~ src/shared/gatt-client.c:696:2: warning: Use of memory after it is freed discovery_op_complete(op, false, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:993:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1099:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1291:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1356:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1631:6: warning: Use of memory after it is freed if (read_db_hash(op)) { ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1636:2: warning: Use of memory after it is freed discover_all(op); ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2140:6: warning: Use of memory after it is freed if (read_db_hash(op)) { ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2148:8: warning: Use of memory after it is freed discovery_op_ref(op), ^~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3237:2: warning: Use of memory after it is freed complete_write_long_op(req, success, 0, false); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3259:2: warning: Use of memory after it is freed request_unref(req); ^~~~~~~~~~~~~~~~~~ 12 warnings generated. src/shared/bap.c:4768:23: warning: Access to field 'type' results in a dereference of a null pointer (loaded from variable 'lpac') if (!match.rpac && (lpac->type != BT_BAP_BCAST_SOURCE)) ^~~~~~~~~~ 1 warning generated. src/shared/shell.c:1228:13: warning: Access to field 'options' results in a dereference of a null pointer (loaded from variable 'opt') if (c != opt->options[index - offset].val) { ^~~~~~~~~~~~ 1 warning generated. src/shared/gatt-client.c:451:21: warning: Use of memory after it is freed gatt_db_unregister(op->client->db, op->db_id); ^~~~~~~~~~ src/shared/gatt-client.c:696:2: warning: Use of memory after it is freed discovery_op_complete(op, false, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:993:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1099:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1291:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1356:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1631:6: warning: Use of memory after it is freed if (read_db_hash(op)) { ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1636:2: warning: Use of memory after it is freed discover_all(op); ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2140:6: warning: Use of memory after it is freed if (read_db_hash(op)) { ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2148:8: warning: Use of memory after it is freed discovery_op_ref(op), ^~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3237:2: warning: Use of memory after it is freed complete_write_long_op(req, success, 0, false); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3259:2: warning: Use of memory after it is freed request_unref(req); ^~~~~~~~~~~~~~~~~~ 12 warnings generated. src/shared/bap.c:4768:23: warning: Access to field 'type' results in a dereference of a null pointer (loaded from variable 'lpac') if (!match.rpac && (lpac->type != BT_BAP_BCAST_SOURCE)) ^~~~~~~~~~ 1 warning generated. src/shared/shell.c:1228:13: warning: Access to field 'options' results in a dereference of a null pointer (loaded from variable 'opt') if (c != opt->options[index - offset].val) { ^~~~~~~~~~~~ 1 warning generated. tools/hciattach.c:816:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' if ((n = read_hci_event(fd, resp, 10)) < 0) { ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:864:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' if ((n = read_hci_event(fd, resp, 4)) < 0) { ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:886:8: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' if ((n = read_hci_event(fd, resp, 10)) < 0) { ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:908:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' if ((n = read_hci_event(fd, resp, 4)) < 0) { ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:929:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' if ((n = read_hci_event(fd, resp, 4)) < 0) { ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:973:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' if ((n = read_hci_event(fd, resp, 6)) < 0) { ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 warnings generated. src/oui.c:50:2: warning: Value stored to 'hwdb' is never read hwdb = udev_hwdb_unref(hwdb); ^ ~~~~~~~~~~~~~~~~~~~~~ src/oui.c:53:2: warning: Value stored to 'udev' is never read udev = udev_unref(udev); ^ ~~~~~~~~~~~~~~~~ 2 warnings generated. tools/hcidump.c:180:9: warning: Potential leak of memory pointed to by 'dp' if (fds[i].fd == sock) ^~~ tools/hcidump.c:248:17: warning: Assigned value is garbage or undefined dh->ts_sec = htobl(frm.ts.tv_sec); ^ ~~~~~~~~~~~~~~~~~~~~ tools/hcidump.c:326:9: warning: 1st function call argument is an uninitialized value if (be32toh(dp.flags) & 0x02) { ^~~~~~~~~~~~~~~~~ /usr/include/endian.h:46:22: note: expanded from macro 'be32toh' # define be32toh(x) __bswap_32 (x) ^~~~~~~~~~~~~~ tools/hcidump.c:341:20: warning: 1st function call argument is an uninitialized value frm.data_len = be32toh(dp.len); ^~~~~~~~~~~~~~~ /usr/include/endian.h:46:22: note: expanded from macro 'be32toh' # define be32toh(x) __bswap_32 (x) ^~~~~~~~~~~~~~ tools/hcidump.c:346:14: warning: 1st function call argument is an uninitialized value opcode = be32toh(dp.flags) & 0xffff; ^~~~~~~~~~~~~~~~~ /usr/include/endian.h:46:22: note: expanded from macro 'be32toh' # define be32toh(x) __bswap_32 (x) ^~~~~~~~~~~~~~ tools/hcidump.c:384:17: warning: Assigned value is garbage or undefined frm.data_len = btohs(dh.len); ^ ~~~~~~~~~~~~~ tools/hcidump.c:394:11: warning: Assigned value is garbage or undefined frm.len = frm.data_len; ^ ~~~~~~~~~~~~ tools/hcidump.c:398:9: warning: 1st function call argument is an uninitialized value ts = be64toh(ph.ts); ^~~~~~~~~~~~~~ /usr/include/endian.h:51:22: note: expanded from macro 'be64toh' # define be64toh(x) __bswap_64 (x) ^~~~~~~~~~~~~~ tools/hcidump.c:403:13: warning: 1st function call argument is an uninitialized value frm.in = be32toh(dp.flags) & 0x01; ^~~~~~~~~~~~~~~~~ /usr/include/endian.h:46:22: note: expanded from macro 'be32toh' # define be32toh(x) __bswap_32 (x) ^~~~~~~~~~~~~~ tools/hcidump.c:408:11: warning: Assigned value is garbage or undefined frm.in = dh.in; ^ ~~~~~ tools/hcidump.c:437:7: warning: Null pointer passed to 1st parameter expecting 'nonnull' fd = open(file, open_flags, 0644); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11 warnings generated. tools/rfcomm.c:228:3: warning: Value stored to 'i' is never read i = execvp(cmdargv[0], cmdargv); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/rfcomm.c:228:7: warning: Null pointer passed to 1st parameter expecting 'nonnull' i = execvp(cmdargv[0], cmdargv); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/rfcomm.c:348:8: warning: Although the value stored to 'fd' is used in the enclosing expression, the value is never actually read from 'fd' if ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/rfcomm.c:491:14: warning: Assigned value is garbage or undefined req.channel = raddr.rc_channel; ^ ~~~~~~~~~~~~~~~~ tools/rfcomm.c:509:8: warning: Although the value stored to 'fd' is used in the enclosing expression, the value is never actually read from 'fd' if ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 warnings generated. src/sdp-xml.c:126:10: warning: Assigned value is garbage or undefined buf[1] = data[i + 1]; ^ ~~~~~~~~~~~ src/sdp-xml.c:300:11: warning: Assigned value is garbage or undefined buf[1] = data[i + 1]; ^ ~~~~~~~~~~~ src/sdp-xml.c:338:11: warning: Assigned value is garbage or undefined buf[1] = data[i + 1]; ^ ~~~~~~~~~~~ 3 warnings generated. tools/ciptool.c:350:7: warning: 5th function call argument is an uninitialized value sk = do_connect(ctl, dev_id, &src, &dst, psm, (1 << CMTP_LOOPBACK)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. tools/sdptool.c:941:26: warning: Result of 'malloc' is converted to a pointer of type 'uint32_t', which is incompatible with sizeof operand type 'int' uint32_t *value_int = malloc(sizeof(int)); ~~~~~~~~~~ ^~~~~~ ~~~~~~~~~~~ tools/sdptool.c:980:4: warning: 1st function call argument is an uninitialized value free(allocArray[i]); ^~~~~~~~~~~~~~~~~~~ tools/sdptool.c:3777:2: warning: Potential leak of memory pointed to by 'si.name' return add_service(0, &si); ^~~~~~~~~~~~~~~~~~~~~~~~~~ tools/sdptool.c:4112:4: warning: Potential leak of memory pointed to by 'context.svc' return -1; ^~~~~~~~~ 4 warnings generated. tools/avtest.c:225:5: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:235:5: warning: Value stored to 'len' is never read len = write(sk, buf, 4); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:244:5: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:258:5: warning: Value stored to 'len' is never read len = write(sk, buf, ^ ~~~~~~~~~~~~~~ tools/avtest.c:265:5: warning: Value stored to 'len' is never read len = write(sk, buf, ^ ~~~~~~~~~~~~~~ tools/avtest.c:272:5: warning: Value stored to 'len' is never read len = write(sk, buf, ^ ~~~~~~~~~~~~~~ tools/avtest.c:279:5: warning: Value stored to 'len' is never read len = write(sk, buf, ^ ~~~~~~~~~~~~~~ tools/avtest.c:291:5: warning: Value stored to 'len' is never read len = write(sk, buf, 4); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:295:5: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:304:5: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:308:5: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:317:5: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:324:5: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:346:5: warning: Value stored to 'len' is never read len = write(sk, buf, 4); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:350:5: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:359:5: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:363:5: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:376:5: warning: Value stored to 'len' is never read len = write(sk, buf, 4); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:380:5: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:387:4: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:397:4: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:562:3: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:570:3: warning: Value stored to 'len' is never read len = write(sk, buf, invalid ? 2 : 3); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/avtest.c:584:3: warning: Value stored to 'len' is never read len = write(sk, buf, 4 + sizeof(media_transport)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/avtest.c:597:3: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:607:3: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:619:3: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:634:3: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:646:3: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:655:3: warning: Value stored to 'len' is never read len = write(sk, buf, 3); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:662:3: warning: Value stored to 'len' is never read len = write(sk, buf, 2); ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:698:2: warning: Value stored to 'len' is never read len = write(sk, buf, AVCTP_HEADER_LENGTH + sizeof(play_pressed)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32 warnings generated. tools/btproxy.c:836:15: warning: Null pointer passed to 1st parameter expecting 'nonnull' tcp_port = atoi(optarg); ^~~~~~~~~~~~ tools/btproxy.c:839:8: warning: Null pointer passed to 1st parameter expecting 'nonnull' if (strlen(optarg) > 3 && !strncmp(optarg, "hci", 3)) ^~~~~~~~~~~~~~ 2 warnings generated. tools/create-image.c:76:3: warning: Value stored to 'fd' is never read fd = -1; ^ ~~ tools/create-image.c:84:3: warning: Value stored to 'fd' is never read fd = -1; ^ ~~ tools/create-image.c:92:3: warning: Value stored to 'fd' is never read fd = -1; ^ ~~ tools/create-image.c:105:2: warning: Value stored to 'fd' is never read fd = -1; ^ ~~ 4 warnings generated. tools/btgatt-client.c:1597:2: warning: Value stored to 'argv' is never read argv += optind; ^ ~~~~~~ 1 warning generated. tools/btgatt-server.c:1212:2: warning: Value stored to 'argv' is never read argv -= optind; ^ ~~~~~~ 1 warning generated. tools/check-selftest.c:42:3: warning: Value stored to 'ptr' is never read ptr = fgets(result, sizeof(result), fp); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. tools/gatt-service.c:294:2: warning: 2nd function call argument is an uninitialized value chr_write(chr, value, len); ^~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. tools/obex-server-tool.c:133:13: warning: Null pointer passed to 1st parameter expecting 'nonnull' data->fd = open(name, O_WRONLY | O_CREAT | O_NOCTTY, 0600); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/obex-server-tool.c:192:13: warning: Null pointer passed to 1st parameter expecting 'nonnull' data->fd = open(name, O_RDONLY | O_NOCTTY, 0); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. tools/test-runner.c:945:2: warning: 2nd function call argument is an uninitialized value printf("Running command %s\n", cmdname ? cmdname : argv[0]); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. tools/btpclientctl.c:402:3: warning: Value stored to 'bit' is never read bit = 0; ^ ~ tools/btpclientctl.c:1655:2: warning: Null pointer passed to 2nd parameter expecting 'nonnull' memcpy(cp->data, ad_data, ad_len); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. src/sdpd-request.c:211:13: warning: Result of 'malloc' is converted to a pointer of type 'char', which is incompatible with sizeof operand type 'uint16_t' pElem = malloc(sizeof(uint16_t)); ^~~~~~ ~~~~~~~~~~~~~~~~ src/sdpd-request.c:239:13: warning: Result of 'malloc' is converted to a pointer of type 'char', which is incompatible with sizeof operand type 'uint32_t' pElem = malloc(sizeof(uint32_t)); ^~~~~~ ~~~~~~~~~~~~~~~~ 2 warnings generated. android/avrcp-lib.c:1968:3: warning: 1st function call argument is an uninitialized value g_free(text[i]); ^~~~~~~~~~~~~~~ 1 warning generated. profiles/health/hdp.c:644:3: warning: Use of memory after it is freed hdp_tmp_dc_data_unref(dc_data); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ profiles/health/hdp.c:800:19: warning: Use of memory after it is freed path = g_strdup(chan->path); ^~~~~~~~~~ profiles/health/hdp.c:1779:6: warning: Use of memory after it is freed hdp_tmp_dc_data_ref(hdp_conn), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ profiles/health/hdp.c:1836:30: warning: Use of memory after it is freed reply = g_dbus_create_error(data->msg, ERROR_INTERFACE ".HealthError", ^~~~~~~~~ 4 warnings generated. profiles/health/hdp_util.c:1053:2: warning: Use of memory after it is freed conn_data->func(conn_data->data, gerr); ^~~~~~~~~~~~~~~ 1 warning generated. attrib/gatt.c:970:2: warning: Potential leak of memory pointed to by 'long_write' return prepare_write(long_write); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. src/sdpd-request.c:211:13: warning: Result of 'malloc' is converted to a pointer of type 'char', which is incompatible with sizeof operand type 'uint16_t' pElem = malloc(sizeof(uint16_t)); ^~~~~~ ~~~~~~~~~~~~~~~~ src/sdpd-request.c:239:13: warning: Result of 'malloc' is converted to a pointer of type 'char', which is incompatible with sizeof operand type 'uint32_t' pElem = malloc(sizeof(uint32_t)); ^~~~~~ ~~~~~~~~~~~~~~~~ 2 warnings generated. src/sdp-xml.c:126:10: warning: Assigned value is garbage or undefined buf[1] = data[i + 1]; ^ ~~~~~~~~~~~ src/sdp-xml.c:300:11: warning: Assigned value is garbage or undefined buf[1] = data[i + 1]; ^ ~~~~~~~~~~~ src/sdp-xml.c:338:11: warning: Assigned value is garbage or undefined buf[1] = data[i + 1]; ^ ~~~~~~~~~~~ 3 warnings generated. src/sdp-client.c:353:14: warning: Access to field 'cb' results in a dereference of a null pointer (*ctxt)->cb = cb; ~~~~~~~~~~~~^~~~ 1 warning generated. src/gatt-database.c:1154:10: warning: Value stored to 'bits' during its initialization is never read uint8_t bits[] = { BT_GATT_CHRC_CLI_FEAT_ROBUST_CACHING, ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. gobex/gobex-header.c:67:2: warning: Null pointer passed to 2nd parameter expecting 'nonnull' memcpy(to, from, count); ^~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. gobex/gobex-transfer.c:423:7: warning: Use of memory after it is freed if (!g_slist_find(transfers, transfer)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. lib/hci.c:97:4: warning: Value stored to 'ptr' is never read ptr += sprintf(ptr, "%s", m->str); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. gdbus/watch.c:204:3: warning: Attempt to free released memory g_free(l->data); ^~~~~~~~~~~~~~~ 1 warning generated. lib/sdp.c:507:16: warning: Dereference of undefined pointer value int8_t dtd = *(uint8_t *) dtds[i]; ^~~~~~~~~~~~~~~~~~~~ lib/sdp.c:535:17: warning: Dereference of undefined pointer value uint8_t dtd = *(uint8_t *) dtds[i]; ^~~~~~~~~~~~~~~~~~~~ lib/sdp.c:580:12: warning: Access to field 'attrId' results in a dereference of a null pointer (loaded from variable 'd') d->attrId = attr; ~ ^ lib/sdp.c:1870:26: warning: Potential leak of memory pointed to by 'ap' for (; pdlist; pdlist = pdlist->next) { ^~~~~~ lib/sdp.c:1884:6: warning: Potential leak of memory pointed to by 'pds' ap = sdp_list_append(ap, pds); ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ lib/sdp.c:1929:10: warning: Potential leak of memory pointed to by 'u' *seqp = sdp_list_append(*seqp, u); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/sdp.c:2034:4: warning: Potential leak of memory pointed to by 'lang' sdp_list_free(*langSeq, free); ^~~~~~~~~~~~~ lib/sdp.c:2123:9: warning: Potential leak of memory pointed to by 'profDesc' return 0; ^ lib/sdp.c:3255:8: warning: Potential leak of memory pointed to by 'pSvcRec' pSeq = sdp_list_append(pSeq, pSvcRec); ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/sdp.c:3256:9: warning: Potential leak of memory pointed to by 'pSeq' pdata += sizeof(uint32_t); ~~~~~~^~~~~~~~~~~~~~~~~~~ lib/sdp.c:4592:13: warning: Potential leak of memory pointed to by 'rec_list' } while (scanned < attr_list_len && pdata_len > 0); ^~~~~~~ lib/sdp.c:4888:40: warning: Potential leak of memory pointed to by 'tseq' for (d = sdpdata->val.dataseq; d; d = d->next) { ^ lib/sdp.c:4924:8: warning: Potential leak of memory pointed to by 'subseq' tseq = sdp_list_append(tseq, subseq); ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 warnings generated. src/shared/gatt-client.c:451:21: warning: Use of memory after it is freed gatt_db_unregister(op->client->db, op->db_id); ^~~~~~~~~~ src/shared/gatt-client.c:696:2: warning: Use of memory after it is freed discovery_op_complete(op, false, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:993:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1099:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1291:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1356:2: warning: Use of memory after it is freed discovery_op_complete(op, success, att_ecode); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1631:6: warning: Use of memory after it is freed if (read_db_hash(op)) { ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1636:2: warning: Use of memory after it is freed discover_all(op); ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2140:6: warning: Use of memory after it is freed if (read_db_hash(op)) { ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2148:8: warning: Use of memory after it is freed discovery_op_ref(op), ^~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3237:2: warning: Use of memory after it is freed complete_write_long_op(req, success, 0, false); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3259:2: warning: Use of memory after it is freed request_unref(req); ^~~~~~~~~~~~~~~~~~ 12 warnings generated. src/shared/bap.c:4768:23: warning: Access to field 'type' results in a dereference of a null pointer (loaded from variable 'lpac') if (!match.rpac && (lpac->type != BT_BAP_BCAST_SOURCE)) ^~~~~~~~~~ 1 warning generated. src/shared/shell.c:1228:13: warning: Access to field 'options' results in a dereference of a null pointer (loaded from variable 'opt') if (c != opt->options[index - offset].val) { ^~~~~~~~~~~~ 1 warning generated. monitor/l2cap.c:1638:4: warning: Value stored to 'data' is never read data += len; ^ ~~~ monitor/l2cap.c:1639:4: warning: Value stored to 'size' is never read size -= len; ^ ~~~ 2 warnings generated. monitor/hwdb.c:59:2: warning: Value stored to 'hwdb' is never read hwdb = udev_hwdb_unref(hwdb); ^ ~~~~~~~~~~~~~~~~~~~~~ monitor/hwdb.c:64:2: warning: Value stored to 'udev' is never read udev = udev_unref(udev); ^ ~~~~~~~~~~~~~~~~ monitor/hwdb.c:106:2: warning: Value stored to 'hwdb' is never read hwdb = udev_hwdb_unref(hwdb); ^ ~~~~~~~~~~~~~~~~~~~~~ monitor/hwdb.c:111:2: warning: Value stored to 'udev' is never read udev = udev_unref(udev); ^ ~~~~~~~~~~~~~~~~ 4 warnings generated. tools/bluemoon.c:1101:8: warning: Null pointer passed to 1st parameter expecting 'nonnull' if (strlen(optarg) > 3 && !strncmp(optarg, "hci", 3)) ^~~~~~~~~~~~~~ 1 warning generated. tools/meshctl.c:326:19: warning: Access to field 'mesh_devices' results in a dereference of a null pointer (loaded from variable 'default_ctrl') g_list_free_full(default_ctrl->mesh_devices, g_free); ^~~~~~~~~~~~~~~~~~~~~~~~~~ tools/meshctl.c:762:2: warning: 2nd function call argument is an uninitialized value bt_shell_printf("Attempting to disconnect from %s\n", addr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/meshctl.c:1957:2: warning: Value stored to 'len' is never read len = len + extra + strlen("local_node.json"); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. In file included from tools/mesh-gatt/crypto.c:32: ./src/shared/util.h:228:9: warning: 1st function call argument is an uninitialized value return be32_to_cpu(get_unaligned((const uint32_t *) ptr)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/shared/util.h:33:26: note: expanded from macro 'be32_to_cpu' #define be32_to_cpu(val) bswap_32(val) ^~~~~~~~~~~~~ /usr/include/byteswap.h:34:21: note: expanded from macro 'bswap_32' #define bswap_32(x) __bswap_32 (x) ^~~~~~~~~~~~~~ In file included from tools/mesh-gatt/crypto.c:32: ./src/shared/util.h:238:9: warning: 1st function call argument is an uninitialized value return be64_to_cpu(get_unaligned((const uint64_t *) ptr)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/shared/util.h:34:26: note: expanded from macro 'be64_to_cpu' #define be64_to_cpu(val) bswap_64(val) ^~~~~~~~~~~~~ /usr/include/byteswap.h:37:21: note: expanded from macro 'bswap_64' #define bswap_64(x) __bswap_64 (x) ^~~~~~~~~~~~~~ 2 warnings generated. ell/util.c:781:8: warning: The left operand of '>' is a garbage value if (x > UINT8_MAX) ~ ^ ell/util.c:799:8: warning: The left operand of '>' is a garbage value if (x > UINT16_MAX) ~ ^ 2 warnings generated. ell/queue.c:514:4: warning: Value stored to 'entry' is never read entry = entry->next; ^ ~~~~~~~~~~~ 1 warning generated. ell/pem.c:131:8: warning: Dereference of null pointer (loaded from variable 'eol') if (*eol == '\r' || *eol == '\n') ^~~~ ell/pem.c:166:18: warning: Dereference of null pointer (loaded from variable 'eol') if (buf_len && *eol == '\r' && *buf_ptr == '\n') { ^~~~ ell/pem.c:166:34: warning: Dereference of null pointer (loaded from variable 'buf_ptr') if (buf_len && *eol == '\r' && *buf_ptr == '\n') { ^~~~~~~~ ell/pem.c:304:11: warning: 1st function call argument is an uninitialized value result = pem_load_buffer(file.data, file.st.st_size, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ell/pem.c:469:9: warning: 1st function call argument is an uninitialized value list = l_pem_load_certificate_list_from_data(file.data, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 warnings generated. ell/cert.c:644:41: warning: Access to field 'asn1_len' results in a dereference of a null pointer (loaded from variable 'cert') key = l_key_new(L_KEY_RSA, cert->asn1, cert->asn1_len); ^~~~~~~~~~~~~~ ell/cert.c:1677:8: warning: Although the value stored to 'elem_data' is used in the enclosing expression, the value is never actually read from 'elem_data' if (!(elem_data = asn1_der_find_elem(seq, seq_len, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. ell/dbus.c:1692:10: warning: Although the value stored to 'type' is used in the enclosing expression, the value is never actually read from 'type' while ((type = va_arg(args, enum l_dbus_match_type)) != ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ell/gvariant-util.c:143:18: warning: The left operand of '>' is a garbage value if (alignment > max_alignment) ~~~~~~~~~ ^ ell/gvariant-util.c:456:5: warning: Dereference of null pointer !children[0].fixed_size) { ^~~~~~~~~~~~~~~~~~~~~~ ell/gvariant-util.c:846:2: warning: Value stored to 'i' is never read i = container->offset_index - 1; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. ell/ecc-external.c:68:24: warning: The left operand of '&' is a garbage value return (vli[bit / 64] & ((uint64_t) 1 << (bit % 64))); ~~~~~~~~~~~~~ ^ ell/ecc-external.c:160:18: warning: The right operand of '-' is a garbage value diff = left[i] - right[i] - borrow; ^ ~~~~~~~~ 2 warnings generated. In file included from tools/parser/amp.c:15: tools/parser/parser.h:121:16: warning: Dereference of null pointer time_t t = f->ts.tv_sec; ^~~~~~~~~~~~ tools/parser/parser.h:127:27: warning: Dereference of null pointer printf("%8lu.%06lu ", f->ts.tv_sec, f->ts.tv_usec); ^~~~~~~~~~~~ tools/parser/parser.h:129:18: warning: Access to field 'in' results in a dereference of a null pointer (loaded from variable 'f') printf("%c ", (f->in ? '>' : '<')); ^~~~~ 3 warnings generated. In file included from tools/parser/sdp.c:24: tools/parser/parser.h:121:16: warning: Dereference of null pointer time_t t = f->ts.tv_sec; ^~~~~~~~~~~~ tools/parser/parser.h:127:27: warning: Dereference of null pointer printf("%8lu.%06lu ", f->ts.tv_sec, f->ts.tv_usec); ^~~~~~~~~~~~ tools/parser/parser.h:129:18: warning: Access to field 'in' results in a dereference of a null pointer (loaded from variable 'f') printf("%c ", (f->in ? '>' : '<')); ^~~~~ 3 warnings generated. In file included from tools/parser/ppp.c:22: tools/parser/parser.h:156:2: warning: Undefined or garbage value returned to caller return *u8_ptr; ^~~~~~~~~~~~~~ tools/parser/ppp.c:108:30: warning: The left operand of '&' is a garbage value if (*((uint8_t *) frm->ptr) & 0x80) ~~~~~~~~~~~~~~~~~~~~~~~ ^ 2 warnings generated. emulator/serial.c:150:2: warning: Assigned value is garbage or undefined enum btdev_type uninitialized_var(type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ emulator/serial.c:150:36: warning: Value stored to 'type' during its initialization is never read enum btdev_type uninitialized_var(type); ^~~~ emulator/serial.c:35:30: note: expanded from macro 'uninitialized_var' #define uninitialized_var(x) x = x ^ ~ emulator/serial.c:213:2: warning: Assigned value is garbage or undefined enum btdev_type uninitialized_var(dev_type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ emulator/serial.c:213:36: warning: Value stored to 'dev_type' during its initialization is never read enum btdev_type uninitialized_var(dev_type); ^~~~~~~~ emulator/serial.c:35:30: note: expanded from macro 'uninitialized_var' #define uninitialized_var(x) x = x ^ ~ 4 warnings generated. emulator/server.c:200:2: warning: Assigned value is garbage or undefined enum btdev_type uninitialized_var(type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ emulator/server.c:200:36: warning: Value stored to 'type' during its initialization is never read enum btdev_type uninitialized_var(type); ^~~~ emulator/server.c:36:30: note: expanded from macro 'uninitialized_var' #define uninitialized_var(x) x = x ^ ~ 2 warnings generated. emulator/b1ee.c:258:3: warning: Potential leak of memory pointed to by 'server_port' int opt; ^~~~~~~ emulator/b1ee.c:258:3: warning: Potential leak of memory pointed to by 'sniffer_port' int opt; ^~~~~~~ emulator/b1ee.c:289:2: warning: Value stored to 'argc' is never read argc = argc - optind; ^ ~~~~~~~~~~~~~ 3 warnings generated. emulator/btdev.c:1083:10: warning: Although the value stored to 'conn' is used in the enclosing expression, the value is never actually read from 'conn' while ((conn = queue_find(dev->conns, match_handle, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ emulator/btdev.c:1334:24: warning: Access to field 'link' results in a dereference of a null pointer (loaded from variable 'conn') pending_conn_del(dev, conn->link->dev); ^~~~~~~~~~ emulator/btdev.c:1456:13: warning: Access to field 'dev' results in a dereference of a null pointer (loaded from variable 'conn') send_event(conn->dev, BT_HCI_EVT_AUTH_COMPLETE, &ev, sizeof(ev)); ^~~~~~~~~ 3 warnings generated. gobex/gobex-header.c:67:2: warning: Null pointer passed to 2nd parameter expecting 'nonnull' memcpy(to, from, count); ^~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. gobex/gobex-transfer.c:423:7: warning: Use of memory after it is freed if (!g_slist_find(transfers, transfer)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. attrib/gatt.c:970:2: warning: Potential leak of memory pointed to by 'long_write' return prepare_write(long_write); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. tools/btpclient.c:2494:3: warning: Value stored to 'reply' is never read reply = l_dbus_message_new_error(ag.pending_req, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. android/avdtp.c:756:25: warning: Use of memory after it is freed session->prio_queue = g_slist_remove(session->prio_queue, req); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ android/avdtp.c:763:24: warning: Use of memory after it is freed session->req_queue = g_slist_remove(session->req_queue, req); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. profiles/audio/avdtp.c:895:25: warning: Use of memory after it is freed session->prio_queue = g_slist_remove(session->prio_queue, req); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ profiles/audio/avdtp.c:902:24: warning: Use of memory after it is freed session->req_queue = g_slist_remove(session->req_queue, req); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. profiles/audio/a2dp.c:352:8: warning: Use of memory after it is freed if (!cb->resume_cb) ^~~~~~~~~~~~~ 1 warning generated. obexd/plugins/vcard.c:701:6: warning: 2nd function call argument is an uninitialized value if (select_qp_encoding(format, address_fields[0], address_fields[1], ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ obexd/plugins/vcard.c:701:6: warning: 3rd function call argument is an uninitialized value if (select_qp_encoding(format, address_fields[0], address_fields[1], ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ obexd/plugins/vcard.c:701:6: warning: 4th function call argument is an uninitialized value if (select_qp_encoding(format, address_fields[0], address_fields[1], ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ obexd/plugins/vcard.c:701:6: warning: 5th function call argument is an uninitialized value if (select_qp_encoding(format, address_fields[0], address_fields[1], ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 warnings generated. profiles/audio/avrcp.c:1924:2: warning: Value stored to 'operands' is never read operands += sizeof(*pdu); ^ ~~~~~~~~~~~~ 1 warning generated. obexd/plugins/messages-dummy.c:163:9: warning: Access to field 'next' results in a dereference of a null pointer (loaded from variable 'cur') cur = cur->next; ^~~~~~~~~ 1 warning generated. obexd/src/main.c:278:6: warning: Array access (from variable 'option_root') results in a null pointer dereference if (option_root[0] != '/') { ^~~~~~~~~~~~~~ 1 warning generated. obexd/src/obex.c:122:3: warning: Access to field 'set_io_watch' results in a dereference of a null pointer (loaded from field 'driver') os->driver->set_io_watch(os->object, NULL, NULL); ^~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start': (.text+0x24): undefined reference to `main' collect2: error: ld returned 1 exit status make[1]: *** [Makefile:5864: mesh/bluetooth-meshd] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:4674: all] Error 2 --- Regards, Linux Bluetooth ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH BlueZ 02/10] build: tweak PKG_CHECK_MODULES calls 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay 2024-01-16 13:51 ` [PATCH BlueZ 01/10] build: remove unused AM_CONDITIONAL Emil Velikov via B4 Relay @ 2024-01-16 13:51 ` Emil Velikov via B4 Relay 2024-01-16 13:51 ` [PATCH BlueZ 03/10] build: require libudev 196, circa 2012 Emil Velikov via B4 Relay ` (8 subsequent siblings) 10 siblings, 0 replies; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:51 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> There's no need to call AC_SUBST after a PKG_CHECK_MODULES call, since the variables are always set. As an example: the produced Makefile.in and Makefile are identical before/after this change. Similarly, we don't need the "dummy=yes" and manual AC_MSG_ERROR() call - pkg-config (or pkgconf) will produce the same and in some cases better error messages. --- configure.ac | 59 ++++++++++++----------------------------------------------- 1 file changed, 12 insertions(+), 47 deletions(-) diff --git a/configure.ac b/configure.ac index 307a2f30c..7cbfa8846 100644 --- a/configure.ac +++ b/configure.ac @@ -72,23 +72,16 @@ AC_CHECK_LIB(dl, dlopen, dummy=yes, AC_CHECK_HEADERS(linux/types.h linux/if_alg.h linux/uinput.h linux/uhid.h sys/random.h) -PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28, dummy=yes, - AC_MSG_ERROR(GLib >= 2.28 is required)) -AC_SUBST(GLIB_CFLAGS) -AC_SUBST(GLIB_LIBS) +PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28) if (test "${enable_threads}" = "yes"); then AC_DEFINE(NEED_THREADS, 1, [Define if threading support is required]) - PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.16, dummy=yes, - AC_MSG_ERROR(GThread >= 2.16 is required)) + PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.16) GLIB_CFLAGS="$GLIB_CFLAGS $GTHREAD_CFLAGS" GLIB_LIBS="$GLIB_LIBS $GTHREAD_LIBS" fi -PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.10, dummy=yes, - AC_MSG_ERROR(D-Bus >= 1.10 is required)) -AC_SUBST(DBUS_CFLAGS) -AC_SUBST(DBUS_LIBS) +PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.10) AC_ARG_WITH([dbusconfdir], AS_HELP_STRING([--with-dbusconfdir=DIR], [path to D-Bus configuration directory]), @@ -230,10 +223,7 @@ AM_CONDITIONAL(MONITOR, test "${enable_monitor}" != "no") AC_ARG_ENABLE(udev, AS_HELP_STRING([--disable-udev], [disable udev device support]), [enable_udev=${enableval}]) if (test "${enable_tools}" != "no" && test "${enable_udev}" != "no"); then - PKG_CHECK_MODULES(UDEV, libudev >= 172, dummy=yes, - AC_MSG_ERROR(libudev >= 172 is required)) - AC_SUBST(UDEV_CFLAGS) - AC_SUBST(UDEV_LIBS) + PKG_CHECK_MODULES(UDEV, libudev >= 172) AC_CHECK_LIB(udev, udev_hwdb_new, AC_DEFINE(HAVE_UDEV_HWDB_NEW, 1, [Define to 1 if you have the udev_hwdb_new() function.])) @@ -260,10 +250,7 @@ AC_ARG_ENABLE(mesh, AS_HELP_STRING([--enable-mesh], AM_CONDITIONAL(MESH, test "${enable_mesh}" = "yes") if (test "${enable_mesh}" = "yes"); then - PKG_CHECK_MODULES(JSONC, json-c >= 0.13, dummy=yes, - AC_MSG_ERROR(json-c >= 0.13 is required)) - AC_SUBST(JSON_CFLAGS) - AC_SUBST(JSON_LIBS) + PKG_CHECK_MODULES(JSONC, json-c >= 0.13) fi AC_ARG_ENABLE(midi, AS_HELP_STRING([--enable-midi], @@ -271,19 +258,13 @@ AC_ARG_ENABLE(midi, AS_HELP_STRING([--enable-midi], AM_CONDITIONAL(MIDI, test "${enable_midi}" = "yes") if (test "${enable_midi}" = "yes"); then - PKG_CHECK_MODULES(ALSA, alsa, dummy=yes, - AC_MSG_ERROR(ALSA lib is required for MIDI support)) - AC_SUBST(ALSA_CFLAGS) - AC_SUBST(ALSA_LIBS) + PKG_CHECK_MODULES(ALSA, alsa) fi AC_ARG_ENABLE(obex, AS_HELP_STRING([--disable-obex], [disable OBEX profile support]), [enable_obex=${enableval}]) if (test "${enable_obex}" != "no"); then - PKG_CHECK_MODULES(ICAL, libical, dummy=yes, - AC_MSG_ERROR(libical is required)) - AC_SUBST(ICAL_CFLAGS) - AC_SUBST(ICAL_LIBS) + PKG_CHECK_MODULES(ICAL, libical) fi AM_CONDITIONAL(OBEX, test "${enable_obex}" != "no") @@ -295,10 +276,7 @@ AC_ARG_ENABLE([external_ell], AS_HELP_STRING([--enable-external-ell], [enable external Embedded Linux library]), [enable_external_ell=${enableval}]) if (test "${enable_external_ell}" = "yes"); then - PKG_CHECK_MODULES(ELL, ell >= 0.39, dummy=yes, - AC_MSG_ERROR(Embedded Linux library >= 0.39 is required)) - AC_SUBST(ELL_CFLAGS) - AC_SUBST(ELL_LIBS) + PKG_CHECK_MODULES(ELL, ell >= 0.39) fi if (test "${enable_external_ell}" != "yes" && (test "${enable_btpclient}" = "yes" || test "${enable_mesh}" = "yes")); then @@ -442,17 +420,11 @@ AC_ARG_ENABLE(android, AS_HELP_STRING([--enable-android], AM_CONDITIONAL(ANDROID, test "${enable_android}" = "yes") if (test "${enable_android}" = "yes"); then - PKG_CHECK_MODULES(SBC, sbc >= 1.2, dummy=yes, - AC_MSG_ERROR(SBC library >= 1.2 is required)) - AC_SUBST(SBC_CFLAGS) - AC_SUBST(SBC_LIBS) + PKG_CHECK_MODULES(SBC, sbc >= 1.2) fi if (test "${enable_android}" = "yes"); then - PKG_CHECK_MODULES(SPEEXDSP, speexdsp >= 1.2, dummy=yes, - AC_MSG_ERROR(SPEEXDSP library >= 1.2 is required)) - AC_SUBST(SPEEXDSP_CFLAGS) - AC_SUBST(SPEEXDSP_LIBS) + PKG_CHECK_MODULES(SPEEXDSP, speexdsp >= 1.2) fi AC_DEFINE_UNQUOTED(ANDROID_STORAGEDIR, "${storagedir}/android", @@ -466,15 +438,8 @@ if (test -z "${plugin_phonebook}"); then fi if (test "${plugin_phonebook}" = "ebook"); then - PKG_CHECK_MODULES(LIBEBOOK, [libebook-1.2 >= 3.3], dummy=yes, - AC_MSG_ERROR(libebook >= 3.3 is required)) - AC_SUBST(LIBEBOOK_CFLAGS) - AC_SUBST(LIBEBOOK_LIBS) - PKG_CHECK_MODULES(LIBEDATESERVER, [libedataserver-1.2 >= 3.3], - dummy=yes, - AC_MSG_ERROR(libedataserver >= 3.3 is required)) - AC_SUBST(LIBEDATESERVER_CFLAGS) - AC_SUBST(LIBEDATESERVER_LIBS) + PKG_CHECK_MODULES(LIBEBOOK, libebook-1.2 >= 3.3) + PKG_CHECK_MODULES(LIBEDATESERVER, libedataserver-1.2 >= 3.3) fi AC_SUBST(PLUGIN_PHONEBOOK, [${plugin_phonebook}]) -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH BlueZ 03/10] build: require libudev 196, circa 2012 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay 2024-01-16 13:51 ` [PATCH BlueZ 01/10] build: remove unused AM_CONDITIONAL Emil Velikov via B4 Relay 2024-01-16 13:51 ` [PATCH BlueZ 02/10] build: tweak PKG_CHECK_MODULES calls Emil Velikov via B4 Relay @ 2024-01-16 13:51 ` Emil Velikov via B4 Relay 2024-01-16 13:51 ` [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} Emil Velikov via B4 Relay ` (7 subsequent siblings) 10 siblings, 0 replies; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:51 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> libudev 196 (systemd really) was released back in 2012, which introduces the hwdb API. Bump the requirement, since even long retired distributions like Debian oldold stable (aka Buster) include newer versions. --- configure.ac | 6 ++---- monitor/hwdb.c | 2 +- src/oui.c | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 7cbfa8846..cab5da581 100644 --- a/configure.ac +++ b/configure.ac @@ -223,10 +223,8 @@ AM_CONDITIONAL(MONITOR, test "${enable_monitor}" != "no") AC_ARG_ENABLE(udev, AS_HELP_STRING([--disable-udev], [disable udev device support]), [enable_udev=${enableval}]) if (test "${enable_tools}" != "no" && test "${enable_udev}" != "no"); then - PKG_CHECK_MODULES(UDEV, libudev >= 172) - AC_CHECK_LIB(udev, udev_hwdb_new, - AC_DEFINE(HAVE_UDEV_HWDB_NEW, 1, - [Define to 1 if you have the udev_hwdb_new() function.])) + PKG_CHECK_MODULES(UDEV, libudev >= 196) + AC_DEFINE(HAVE_UDEV, 1, [Define to 1 if udev is required]) fi AC_ARG_WITH([udevdir], AS_HELP_STRING([--with-udevdir=DIR], diff --git a/monitor/hwdb.c b/monitor/hwdb.c index 22de9edfb..6c0d052bb 100644 --- a/monitor/hwdb.c +++ b/monitor/hwdb.c @@ -19,7 +19,7 @@ #include "hwdb.h" -#ifdef HAVE_UDEV_HWDB_NEW +#ifdef HAVE_UDEV #include <libudev.h> bool hwdb_get_vendor_model(const char *modalias, char **vendor, char **model) diff --git a/src/oui.c b/src/oui.c index c434f416f..7b3040fb0 100644 --- a/src/oui.c +++ b/src/oui.c @@ -16,7 +16,7 @@ #include "lib/bluetooth.h" #include "oui.h" -#ifdef HAVE_UDEV_HWDB_NEW +#ifdef HAVE_UDEV #include <libudev.h> char *batocomp(const bdaddr_t *ba) -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay ` (2 preceding siblings ...) 2024-01-16 13:51 ` [PATCH BlueZ 03/10] build: require libudev 196, circa 2012 Emil Velikov via B4 Relay @ 2024-01-16 13:51 ` Emil Velikov via B4 Relay 2024-01-16 18:40 ` Luiz Augusto von Dentz 2024-01-16 13:51 ` [PATCH BlueZ 05/10] build: remove unused variable builtin_nodist Emil Velikov via B4 Relay ` (6 subsequent siblings) 10 siblings, 1 reply; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:51 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> The project does not install anything in the respective confdir and statedir(s). Since no files are installed, the respective folders are not created either - systemd will create them prior to starting the service(s). The *dir variables themselves are no longer used in *service.in, so remove everything. --- Makefile.am | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/Makefile.am b/Makefile.am index e738eb3a5..16d6bf160 100644 --- a/Makefile.am +++ b/Makefile.am @@ -28,15 +28,9 @@ AM_CFLAGS = $(MISC_CFLAGS) $(WARNING_CFLAGS) $(UDEV_CFLAGS) $(LIBEBOOK_CFLAGS) \ $(LIBEDATASERVER_CFLAGS) $(ell_cflags) AM_LDFLAGS = $(MISC_LDFLAGS) -confdir = $(sysconfdir)/bluetooth -statedir = $(localstatedir)/lib/bluetooth - if DATAFILES dbusdir = $(DBUS_CONFDIR)/dbus-1/system.d dbus_DATA = src/bluetooth.conf - -conf_DATA = -state_DATA = endif if SYSTEMD @@ -747,9 +741,7 @@ MAINTAINERCLEANFILES = Makefile.in \ SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(SED) -e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \ - -e 's,@libexecdir\@,$(libexecdir),g' \ - -e 's,@statedir\@,$(statedir),g' \ - -e 's,@confdir\@,$(confdir),g' \ + -e 's,@libexecdir\@,$(libexecdir),g' < $< > $@ if RUN_RST2MAN -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} 2024-01-16 13:51 ` [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} Emil Velikov via B4 Relay @ 2024-01-16 18:40 ` Luiz Augusto von Dentz 2024-01-17 8:39 ` Emil Velikov 0 siblings, 1 reply; 19+ messages in thread From: Luiz Augusto von Dentz @ 2024-01-16 18:40 UTC (permalink / raw) To: emil.l.velikov; +Cc: linux-bluetooth, Emil Velikov Hi Emil, On Tue, Jan 16, 2024 at 8:52 AM Emil Velikov via B4 Relay <devnull+emil.l.velikov.gmail.com@kernel.org> wrote: > > From: Emil Velikov <emil.velikov@collabora.com> > > The project does not install anything in the respective confdir and > statedir(s). Since no files are installed, the respective folders are > not created either - systemd will create them prior to starting the > service(s). > > The *dir variables themselves are no longer used in *service.in, so > remove everything. > --- > Makefile.am | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > > diff --git a/Makefile.am b/Makefile.am > index e738eb3a5..16d6bf160 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -28,15 +28,9 @@ AM_CFLAGS = $(MISC_CFLAGS) $(WARNING_CFLAGS) $(UDEV_CFLAGS) $(LIBEBOOK_CFLAGS) \ > $(LIBEDATASERVER_CFLAGS) $(ell_cflags) > AM_LDFLAGS = $(MISC_LDFLAGS) > > -confdir = $(sysconfdir)/bluetooth > -statedir = $(localstatedir)/lib/bluetooth > - > if DATAFILES > dbusdir = $(DBUS_CONFDIR)/dbus-1/system.d > dbus_DATA = src/bluetooth.conf > - > -conf_DATA = > -state_DATA = > endif > > if SYSTEMD > @@ -747,9 +741,7 @@ MAINTAINERCLEANFILES = Makefile.in \ > > SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ > $(SED) -e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \ > - -e 's,@libexecdir\@,$(libexecdir),g' \ > - -e 's,@statedir\@,$(statedir),g' \ > - -e 's,@confdir\@,$(confdir),g' \ > + -e 's,@libexecdir\@,$(libexecdir),g' > < $< > $@ > > if RUN_RST2MAN > > -- > 2.43.0 This one seems to be causing some build regression, when trying to apply it breaks the builds. -- Luiz Augusto von Dentz ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} 2024-01-16 18:40 ` Luiz Augusto von Dentz @ 2024-01-17 8:39 ` Emil Velikov 2024-01-18 16:12 ` Emil Velikov 0 siblings, 1 reply; 19+ messages in thread From: Emil Velikov @ 2024-01-17 8:39 UTC (permalink / raw) To: Luiz Augusto von Dentz; +Cc: linux-bluetooth, Emil Velikov On Tue, 16 Jan 2024 at 18:40, Luiz Augusto von Dentz <luiz.dentz@gmail.com> wrote: > > This one seems to be causing some build regression, when trying to > apply it breaks the builds. > Thanks for the quick feedback Luiz. Would be happy to help but need some details: - configure options used - autoconf, make, gcc(?) version - the error log I did run all my patches through `git rebase -x "./bootstrap-config && make -j8 distcheck" origin/master` so any regressions are alarming. OOC: Where is the code for the test bot that reports on the ML? I've noticed that it flagged some unrelated issues [1], while not honouring the "Reply-to:" header. Thanks Emil [1] https://lore.kernel.org/linux-bluetooth/65a6a3a4.170a0220.86c5e.e719@mx.google.com/T/#m21808760ae29dae03e415e67c47b045daa461a6a ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} 2024-01-17 8:39 ` Emil Velikov @ 2024-01-18 16:12 ` Emil Velikov 2024-01-18 17:05 ` Luiz Augusto von Dentz 0 siblings, 1 reply; 19+ messages in thread From: Emil Velikov @ 2024-01-18 16:12 UTC (permalink / raw) To: Luiz Augusto von Dentz; +Cc: linux-bluetooth, Emil Velikov On Wed, 17 Jan 2024 at 08:39, Emil Velikov <emil.l.velikov@gmail.com> wrote: > > On Tue, 16 Jan 2024 at 18:40, Luiz Augusto von Dentz > <luiz.dentz@gmail.com> wrote: > > > > > This one seems to be causing some build regression, when trying to > > apply it breaks the builds. > > > > Thanks for the quick feedback Luiz. > > Would be happy to help but need some details: > - configure options used > - autoconf, make, gcc(?) version > - the error log > Just went through all the patches and they apply and build just fine. Both in terms of "./bootstrap-configure && make distcheck" as well as the Arch specific configure options as seen here [1]. Any pointers about the issue you're seeing and the platform in question would be appreciated. Thanks again, Emil [1] https://gitlab.archlinux.org/archlinux/packaging/packages/bluez/-/blob/main/PKGBUILD?ref_type=heads ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} 2024-01-18 16:12 ` Emil Velikov @ 2024-01-18 17:05 ` Luiz Augusto von Dentz 2024-01-19 11:09 ` Emil Velikov 0 siblings, 1 reply; 19+ messages in thread From: Luiz Augusto von Dentz @ 2024-01-18 17:05 UTC (permalink / raw) To: Emil Velikov; +Cc: linux-bluetooth, Emil Velikov Hi Emil, On Thu, Jan 18, 2024 at 11:12 AM Emil Velikov <emil.l.velikov@gmail.com> wrote: > > On Wed, 17 Jan 2024 at 08:39, Emil Velikov <emil.l.velikov@gmail.com> wrote: > > > > On Tue, 16 Jan 2024 at 18:40, Luiz Augusto von Dentz > > <luiz.dentz@gmail.com> wrote: > > > > > > > > This one seems to be causing some build regression, when trying to > > > apply it breaks the builds. > > > > > > > Thanks for the quick feedback Luiz. > > > > Would be happy to help but need some details: > > - configure options used > > - autoconf, make, gcc(?) version > > - the error log > > > > Just went through all the patches and they apply and build just fine. > Both in terms of "./bootstrap-configure && make distcheck" as well as > the Arch specific configure options as seen here [1]. > > Any pointers about the issue you're seeing and the platform in > question would be appreciated. > > Thanks again, > Emil > > [1] https://gitlab.archlinux.org/archlinux/packaging/packages/bluez/-/blob/main/PKGBUILD?ref_type=heads /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/ 9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start': (.text+0x24): undefined reference to `main' collect2: error: ld returned 1 exit status make[1]: *** [Makefile:5864: mesh/bluetooth-meshd] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:4674: all] Error 2 This might be due to using scan-build, anyway CI also run into the same problem: https://github.com/BluezTestBot/bluez/pull/2010#issuecomment-1893971347 -- Luiz Augusto von Dentz ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} 2024-01-18 17:05 ` Luiz Augusto von Dentz @ 2024-01-19 11:09 ` Emil Velikov 2024-01-19 15:09 ` Luiz Augusto von Dentz 0 siblings, 1 reply; 19+ messages in thread From: Emil Velikov @ 2024-01-19 11:09 UTC (permalink / raw) To: Luiz Augusto von Dentz; +Cc: linux-bluetooth, Emil Velikov On Thu, 18 Jan 2024 at 17:05, Luiz Augusto von Dentz <luiz.dentz@gmail.com> wrote: > > Hi Emil, > > On Thu, Jan 18, 2024 at 11:12 AM Emil Velikov <emil.l.velikov@gmail.com> wrote: > > > > On Wed, 17 Jan 2024 at 08:39, Emil Velikov <emil.l.velikov@gmail.com> wrote: > > > > > > On Tue, 16 Jan 2024 at 18:40, Luiz Augusto von Dentz > > > <luiz.dentz@gmail.com> wrote: > > > > > > > > > > > This one seems to be causing some build regression, when trying to > > > > apply it breaks the builds. > > > > > > > > > > Thanks for the quick feedback Luiz. > > > > > > Would be happy to help but need some details: > > > - configure options used > > > - autoconf, make, gcc(?) version > > > - the error log > > > > > > > Just went through all the patches and they apply and build just fine. > > Both in terms of "./bootstrap-configure && make distcheck" as well as > > the Arch specific configure options as seen here [1]. > > > > Any pointers about the issue you're seeing and the platform in > > question would be appreciated. > > > > Thanks again, > > Emil > > > > [1] https://gitlab.archlinux.org/archlinux/packaging/packages/bluez/-/blob/main/PKGBUILD?ref_type=heads > > /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/ > 9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start': > (.text+0x24): undefined reference to `main' > collect2: error: ld returned 1 exit status > make[1]: *** [Makefile:5864: mesh/bluetooth-meshd] Error 1 > make[1]: *** Waiting for unfinished jobs.... > make: *** [Makefile:4674: all] Error 2 > > This might be due to using scan-build, anyway CI also run into the same problem: > Might be version/platform specific - `scan-build make -j2` works just fine here. What are you using - distro, autoconf, clang/scan-build version? > https://github.com/BluezTestBot/bluez/pull/2010#issuecomment-1893971347 > Hmm, I was wondering where the bot lives. Will take a closer look. Thanks Emil ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} 2024-01-19 11:09 ` Emil Velikov @ 2024-01-19 15:09 ` Luiz Augusto von Dentz 0 siblings, 0 replies; 19+ messages in thread From: Luiz Augusto von Dentz @ 2024-01-19 15:09 UTC (permalink / raw) To: Emil Velikov, Tedd Ho-Jeong An; +Cc: linux-bluetooth, Emil Velikov Hi Emil, Tedd, On Fri, Jan 19, 2024 at 6:09 AM Emil Velikov <emil.l.velikov@gmail.com> wrote: > > On Thu, 18 Jan 2024 at 17:05, Luiz Augusto von Dentz > <luiz.dentz@gmail.com> wrote: > > > > Hi Emil, > > > > On Thu, Jan 18, 2024 at 11:12 AM Emil Velikov <emil.l.velikov@gmail.com> wrote: > > > > > > On Wed, 17 Jan 2024 at 08:39, Emil Velikov <emil.l.velikov@gmail.com> wrote: > > > > > > > > On Tue, 16 Jan 2024 at 18:40, Luiz Augusto von Dentz > > > > <luiz.dentz@gmail.com> wrote: > > > > > > > > > > > > > > This one seems to be causing some build regression, when trying to > > > > > apply it breaks the builds. > > > > > > > > > > > > > Thanks for the quick feedback Luiz. > > > > > > > > Would be happy to help but need some details: > > > > - configure options used > > > > - autoconf, make, gcc(?) version > > > > - the error log > > > > > > > > > > Just went through all the patches and they apply and build just fine. > > > Both in terms of "./bootstrap-configure && make distcheck" as well as > > > the Arch specific configure options as seen here [1]. > > > > > > Any pointers about the issue you're seeing and the platform in > > > question would be appreciated. > > > > > > Thanks again, > > > Emil > > > > > > [1] https://gitlab.archlinux.org/archlinux/packaging/packages/bluez/-/blob/main/PKGBUILD?ref_type=heads > > > > /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/ > > 9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start': > > (.text+0x24): undefined reference to `main' > > collect2: error: ld returned 1 exit status > > make[1]: *** [Makefile:5864: mesh/bluetooth-meshd] Error 1 > > make[1]: *** Waiting for unfinished jobs.... > > make: *** [Makefile:4674: all] Error 2 > > > > This might be due to using scan-build, anyway CI also run into the same problem: > > > > Might be version/platform specific - `scan-build make -j2` works just > fine here. What are you using - distro, autoconf, clang/scan-build > version? > > > https://github.com/BluezTestBot/bluez/pull/2010#issuecomment-1893971347 > > > > Hmm, I was wondering where the bot lives. Will take a closer look. If I'm not mistaken it runs under a ubuntu VM under a github action, @Tedd Ho-Jeong An can probably explain it better since he wrote the CI integration, which btw we intend to move to BlueZ organization at some point. > Thanks > Emil -- Luiz Augusto von Dentz ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH BlueZ 05/10] build: remove unused variable builtin_nodist 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay ` (3 preceding siblings ...) 2024-01-16 13:51 ` [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} Emil Velikov via B4 Relay @ 2024-01-16 13:51 ` Emil Velikov via B4 Relay 2024-01-16 13:52 ` [PATCH BlueZ 06/10] build: remove .service files from DEPENDENCIES lists Emil Velikov via B4 Relay ` (5 subsequent siblings) 10 siblings, 0 replies; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:51 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> --- Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 16d6bf160..564f1b935 100644 --- a/Makefile.am +++ b/Makefile.am @@ -282,7 +282,6 @@ gobex_sources = gobex/gobex.h gobex/gobex.c \ builtin_modules = builtin_sources = builtin_cppflags = -builtin_nodist = builtin_ldadd = include Makefile.plugins @@ -344,7 +343,7 @@ src_bluetoothd_CPPFLAGS = $(AM_CPPFLAGS) -DBLUETOOTH_PLUGIN_BUILTIN \ $(BACKTRACE_CFLAGS) $(builtin_cppflags) src_bluetoothd_SHORTNAME = bluetoothd -builtin_files = src/builtin.h $(builtin_nodist) +builtin_files = src/builtin.h nodist_src_bluetoothd_SOURCES = $(builtin_files) -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH BlueZ 06/10] build: remove .service files from DEPENDENCIES lists 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay ` (4 preceding siblings ...) 2024-01-16 13:51 ` [PATCH BlueZ 05/10] build: remove unused variable builtin_nodist Emil Velikov via B4 Relay @ 2024-01-16 13:52 ` Emil Velikov via B4 Relay 2024-01-16 13:52 ` [PATCH BlueZ 07/10] build: remove explicit DEPENDENCIES handling Emil Velikov via B4 Relay ` (4 subsequent siblings) 10 siblings, 0 replies; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:52 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> The DEPENDENCES lists are for binary objects, while the service files are required by systemd (et al) after the install stage. The services files are referenced by _DATA, so the service.in -> service conversion can happen then. --- Makefile.am | 3 +-- Makefile.mesh | 3 +-- Makefile.tools | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index 564f1b935..2be214631 100644 --- a/Makefile.am +++ b/Makefile.am @@ -335,8 +335,7 @@ src_bluetoothd_LDFLAGS = $(AM_LDFLAGS) -Wl,--export-dynamic \ src_bluetoothd_DEPENDENCIES = lib/libbluetooth-internal.la \ gdbus/libgdbus-internal.la \ - src/libshared-glib.la \ - src/bluetooth.service + src/libshared-glib.la src_bluetoothd_CPPFLAGS = $(AM_CPPFLAGS) -DBLUETOOTH_PLUGIN_BUILTIN \ -DPLUGINDIR=\""$(build_plugindir)"\" \ diff --git a/Makefile.mesh b/Makefile.mesh index 63f085de1..a66e47442 100644 --- a/Makefile.mesh +++ b/Makefile.mesh @@ -45,8 +45,7 @@ mesh/main.$(OBJEXT): src/builtin.h lib/bluetooth/bluetooth.h mesh_bluetooth_meshd_SOURCES = $(mesh_sources) mesh/main.c mesh_bluetooth_meshd_LDADD = src/libshared-ell.la $(ell_ldadd) -ljson-c -mesh_bluetooth_meshd_DEPENDENCIES = $(ell_dependencies) src/libshared-ell.la \ - mesh/bluetooth-mesh.service +mesh_bluetooth_meshd_DEPENDENCIES = $(ell_dependencies) src/libshared-ell.la if MANPAGES man_MANS += mesh/bluetooth-meshd.8 diff --git a/Makefile.tools b/Makefile.tools index e541084e9..6fda3f51d 100644 --- a/Makefile.tools +++ b/Makefile.tools @@ -71,8 +71,7 @@ pkglibexec_PROGRAMS += tools/btmon-logger tools_btmon_logger_SOURCES = tools/btmon-logger.c tools_btmon_logger_LDADD = src/libshared-mainloop.la -tools_btmon_logger_DEPENDENCIES = src/libshared-mainloop.la \ - tools/bluetooth-logger.service +tools_btmon_logger_DEPENDENCIES = src/libshared-mainloop.la if SYSTEMD systemdsystemunit_DATA += tools/bluetooth-logger.service -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH BlueZ 07/10] build: remove explicit DEPENDENCIES handling 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay ` (5 preceding siblings ...) 2024-01-16 13:52 ` [PATCH BlueZ 06/10] build: remove .service files from DEPENDENCIES lists Emil Velikov via B4 Relay @ 2024-01-16 13:52 ` Emil Velikov via B4 Relay 2024-01-16 13:52 ` [PATCH BlueZ 08/10] build: manage .service.in files via configure.ac Emil Velikov via B4 Relay ` (3 subsequent siblings) 10 siblings, 0 replies; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:52 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> We currently duplicate the DEPENDENCIES handling that autotools does for us. We have two types of objects - libraries or generated headers. Former are part of the LDADD, the latter in BUILT_SOURCES. --- Makefile.am | 7 ------- Makefile.mesh | 1 - Makefile.tools | 2 -- 3 files changed, 10 deletions(-) diff --git a/Makefile.am b/Makefile.am index 2be214631..6007f9eb7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -77,7 +77,6 @@ lib_LTLIBRARIES += lib/libbluetooth.la lib_libbluetooth_la_SOURCES = $(lib_headers) $(lib_sources) lib_libbluetooth_la_LDFLAGS = $(AM_LDFLAGS) -version-info 22:12:19 -lib_libbluetooth_la_DEPENDENCIES = $(local_headers) endif noinst_LTLIBRARIES += lib/libbluetooth-internal.la @@ -94,12 +93,10 @@ gdbus_libgdbus_internal_la_SOURCES = gdbus/gdbus.h \ if EXTERNAL_ELL ell_cflags = @ELL_CFLAGS@ ell_ldadd = @ELL_LIBS@ -ell_dependencies = ell_built_sources = ell/shared else ell_cflags = ell_ldadd = ell/libell-internal.la -ell_dependencies = $(ell_ldadd) ell_built_sources = ell/shared ell/internal ell/ell.h noinst_LTLIBRARIES += ell/libell-internal.la @@ -333,10 +330,6 @@ src_bluetoothd_LDADD = lib/libbluetooth-internal.la \ src_bluetoothd_LDFLAGS = $(AM_LDFLAGS) -Wl,--export-dynamic \ -Wl,--version-script=$(srcdir)/src/bluetooth.ver -src_bluetoothd_DEPENDENCIES = lib/libbluetooth-internal.la \ - gdbus/libgdbus-internal.la \ - src/libshared-glib.la - src_bluetoothd_CPPFLAGS = $(AM_CPPFLAGS) -DBLUETOOTH_PLUGIN_BUILTIN \ -DPLUGINDIR=\""$(build_plugindir)"\" \ $(BACKTRACE_CFLAGS) $(builtin_cppflags) diff --git a/Makefile.mesh b/Makefile.mesh index a66e47442..45fa90339 100644 --- a/Makefile.mesh +++ b/Makefile.mesh @@ -45,7 +45,6 @@ mesh/main.$(OBJEXT): src/builtin.h lib/bluetooth/bluetooth.h mesh_bluetooth_meshd_SOURCES = $(mesh_sources) mesh/main.c mesh_bluetooth_meshd_LDADD = src/libshared-ell.la $(ell_ldadd) -ljson-c -mesh_bluetooth_meshd_DEPENDENCIES = $(ell_dependencies) src/libshared-ell.la if MANPAGES man_MANS += mesh/bluetooth-meshd.8 diff --git a/Makefile.tools b/Makefile.tools index 6fda3f51d..1cde39f94 100644 --- a/Makefile.tools +++ b/Makefile.tools @@ -71,7 +71,6 @@ pkglibexec_PROGRAMS += tools/btmon-logger tools_btmon_logger_SOURCES = tools/btmon-logger.c tools_btmon_logger_LDADD = src/libshared-mainloop.la -tools_btmon_logger_DEPENDENCIES = src/libshared-mainloop.la if SYSTEMD systemdsystemunit_DATA += tools/bluetooth-logger.service @@ -577,7 +576,6 @@ noinst_PROGRAMS += tools/btpclient tools/btpclientctl tools_btpclient_SOURCES = tools/btpclient.c src/shared/btp.c src/shared/btp.h tools_btpclient_LDADD = lib/libbluetooth-internal.la \ src/libshared-ell.la $(ell_ldadd) -tools_btpclient_DEPENDENCIES = lib/libbluetooth-internal.la $(ell_dependencies) tools/btpclient.$(OBJEXT): src/libshared-ell.la ell/internal tools_btpclientctl_SOURCES = tools/btpclientctl.c client/display.c -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH BlueZ 08/10] build: manage .service.in files via configure.ac 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay ` (6 preceding siblings ...) 2024-01-16 13:52 ` [PATCH BlueZ 07/10] build: remove explicit DEPENDENCIES handling Emil Velikov via B4 Relay @ 2024-01-16 13:52 ` Emil Velikov via B4 Relay 2024-01-16 13:52 ` [PATCH BlueZ 09/10] build: enable gc/dead code removal Emil Velikov via B4 Relay ` (2 subsequent siblings) 10 siblings, 0 replies; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:52 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> Considering we do basic substitution, we don't need to manually sed, track dependencies, dist nor clean. Just add the files to AC_CONFIG_FILES() call it a day - it does everything for us. --- Makefile.am | 12 ++---------- Makefile.mesh | 5 +---- Makefile.obexd | 4 ++-- Makefile.tools | 3 --- configure.ac | 11 ++++++++++- mesh/bluetooth-mesh.service.in | 2 +- obexd/src/obex.service.in | 2 +- src/bluetooth.service.in | 2 +- tools/bluetooth-logger.service.in | 2 +- 9 files changed, 19 insertions(+), 24 deletions(-) diff --git a/Makefile.am b/Makefile.am index 6007f9eb7..9bb27c911 100644 --- a/Makefile.am +++ b/Makefile.am @@ -41,7 +41,7 @@ dbussystembusdir = $(DBUS_SYSTEMBUSDIR) dbussystembus_DATA = src/org.bluez.service endif -EXTRA_DIST += src/bluetooth.service.in src/org.bluez.service +EXTRA_DIST += src/org.bluez.service plugindir = $(libdir)/bluetooth/plugins @@ -339,7 +339,7 @@ builtin_files = src/builtin.h nodist_src_bluetoothd_SOURCES = $(builtin_files) -CLEANFILES += $(builtin_files) src/bluetooth.service +CLEANFILES += $(builtin_files) if MANPAGES man_MANS += src/bluetoothd.8 @@ -730,11 +730,6 @@ MAINTAINERCLEANFILES = Makefile.in \ aclocal.m4 configure config.h.in config.sub config.guess \ ltmain.sh depcomp compile missing install-sh mkinstalldirs test-driver -SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ - $(SED) -e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \ - -e 's,@libexecdir\@,$(libexecdir),g' - < $< > $@ - if RUN_RST2MAN RST2MAN_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(RST2MAN) --strict --no-raw \ @@ -744,9 +739,6 @@ RST2MAN_PROCESS = $(AM_V_GEN)test -f $@ || \ { echo "Generated manual page $@ does not exist"; false; } endif -%.service: %.service.in Makefile - $(SED_PROCESS) - %.1: %.rst Makefile $(RST2MAN_PROCESS) diff --git a/Makefile.mesh b/Makefile.mesh index 45fa90339..ea50383d2 100644 --- a/Makefile.mesh +++ b/Makefile.mesh @@ -51,9 +51,6 @@ man_MANS += mesh/bluetooth-meshd.8 endif manual_pages += mesh/bluetooth-meshd.8 -CLEANFILES += mesh/bluetooth-mesh.service - endif -EXTRA_DIST += mesh/bluetooth-mesh.conf mesh/bluetooth-mesh.service.in \ - mesh/org.bluez.mesh.service mesh/mesh-main.conf +EXTRA_DIST += mesh/bluetooth-mesh.conf mesh/org.bluez.mesh.service mesh/mesh-main.conf diff --git a/Makefile.obexd b/Makefile.obexd index 5d1a4ff65..c2b5c6d7a 100644 --- a/Makefile.obexd +++ b/Makefile.obexd @@ -7,7 +7,7 @@ dbussessionbusdir = $(DBUS_SESSIONBUSDIR) dbussessionbus_DATA = obexd/src/org.bluez.obex.service endif -EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service +EXTRA_DIST += obexd/src/org.bluez.obex.service if OBEX @@ -112,6 +112,6 @@ obexd/src/builtin.h: obexd/src/genbuiltin $(obexd_builtin_sources) $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)$(srcdir)/obexd/src/genbuiltin $(obexd_builtin_modules) > $@ -CLEANFILES += obexd/src/builtin.h $(builtin_files) obexd/src/obex.service +CLEANFILES += obexd/src/builtin.h EXTRA_DIST += obexd/src/genbuiltin diff --git a/Makefile.tools b/Makefile.tools index 1cde39f94..044342e29 100644 --- a/Makefile.tools +++ b/Makefile.tools @@ -77,9 +77,6 @@ systemdsystemunit_DATA += tools/bluetooth-logger.service endif endif -CLEANFILES += tools/bluetooth-logger.service -EXTRA_DIST += tools/bluetooth-logger.service.in - if TESTING noinst_PROGRAMS += emulator/btvirt emulator/b1ee emulator/hfp \ peripheral/btsensor tools/3dsp \ diff --git a/configure.ac b/configure.ac index cab5da581..b4d362494 100644 --- a/configure.ac +++ b/configure.ac @@ -441,5 +441,14 @@ if (test "${plugin_phonebook}" = "ebook"); then fi AC_SUBST(PLUGIN_PHONEBOOK, [${plugin_phonebook}]) -AC_CONFIG_FILES(Makefile src/bluetoothd.rst lib/bluez.pc mesh/bluetooth-meshd.rst) +AC_CONFIG_FILES( + lib/bluez.pc + Makefile + mesh/bluetooth-meshd.rst + mesh/bluetooth-mesh.service + obexd/src/obex.service + src/bluetoothd.rst + src/bluetooth.service + tools/bluetooth-logger.service +) AC_OUTPUT diff --git a/mesh/bluetooth-mesh.service.in b/mesh/bluetooth-mesh.service.in index c8afbf53e..9c3ff01a3 100644 --- a/mesh/bluetooth-mesh.service.in +++ b/mesh/bluetooth-mesh.service.in @@ -5,7 +5,7 @@ ConditionPathIsDirectory=/sys/class/bluetooth [Service] Type=dbus BusName=org.bluez.mesh -ExecStart=@pkglibexecdir@/bluetooth-meshd +ExecStart=@exec_prefix@/bluetooth/bluetooth-meshd NotifyAccess=main LimitNPROC=1 ProtectHome=true diff --git a/obexd/src/obex.service.in b/obexd/src/obex.service.in index fc0dce993..03d09a679 100644 --- a/obexd/src/obex.service.in +++ b/obexd/src/obex.service.in @@ -4,7 +4,7 @@ Description=Bluetooth OBEX service [Service] Type=dbus BusName=org.bluez.obex -ExecStart=@pkglibexecdir@/obexd +ExecStart=@exec_prefix@/bluetooth/obexd [Install] Alias=dbus-org.bluez.obex.service diff --git a/src/bluetooth.service.in b/src/bluetooth.service.in index beb98ce0c..63e157587 100644 --- a/src/bluetooth.service.in +++ b/src/bluetooth.service.in @@ -6,7 +6,7 @@ ConditionPathIsDirectory=/sys/class/bluetooth [Service] Type=dbus BusName=org.bluez -ExecStart=@pkglibexecdir@/bluetoothd +ExecStart=@exec_prefix@/bluetooth/bluetoothd NotifyAccess=main #WatchdogSec=10 #Restart=on-failure diff --git a/tools/bluetooth-logger.service.in b/tools/bluetooth-logger.service.in index 009002731..5657c8d84 100644 --- a/tools/bluetooth-logger.service.in +++ b/tools/bluetooth-logger.service.in @@ -4,7 +4,7 @@ ConditionPathIsDirectory=/sys/class/bluetooth [Service] Type=simple -ExecStart=@pkglibexecdir@/btmon-logger -p -b /var/log/bluetooth/hci.log +ExecStart=@exec_prefix@/bluetooth/btmon-logger -p -b /var/log/bluetooth/hci.log NotifyAccess=main CapabilityBoundingSet=CAP_NET_RAW LimitNPROC=1 -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH BlueZ 09/10] build: enable gc/dead code removal 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay ` (7 preceding siblings ...) 2024-01-16 13:52 ` [PATCH BlueZ 08/10] build: manage .service.in files via configure.ac Emil Velikov via B4 Relay @ 2024-01-16 13:52 ` Emil Velikov via B4 Relay 2024-01-16 13:52 ` [PATCH BlueZ 10/10] build: install dbus-org.bluez.obex.service symlink Emil Velikov via B4 Relay 2024-01-16 19:02 ` [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service patchwork-bot+bluetooth 10 siblings, 0 replies; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:52 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> Currently, there's plenty of unused code in most binaries. Enable -fdata/function-sections, which allows the linker garbage collection to do its job. On a maintainer build, this reduces the (unstriped) binaries from 117 to 114MiB. --- acinclude.m4 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index c5d6de7b3..4b73a5bfc 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -134,6 +134,8 @@ AC_DEFUN([MISC_FLAGS], [ misc_cflags="$misc_cflags --coverage" misc_ldflags="$misc_ldflags --coverage" fi + misc_cflags="$misc_cflags -ffunction-sections -fdata-sections" + misc_ldflags="$misc_ldflags -Wl,--gc-sections" AC_SUBST([MISC_CFLAGS], $misc_cflags) AC_SUBST([MISC_LDFLAGS], $misc_ldflags) ]) -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH BlueZ 10/10] build: install dbus-org.bluez.obex.service symlink 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay ` (8 preceding siblings ...) 2024-01-16 13:52 ` [PATCH BlueZ 09/10] build: enable gc/dead code removal Emil Velikov via B4 Relay @ 2024-01-16 13:52 ` Emil Velikov via B4 Relay 2024-01-16 19:02 ` [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service patchwork-bot+bluetooth 10 siblings, 0 replies; 19+ messages in thread From: Emil Velikov via B4 Relay @ 2024-01-16 13:52 UTC (permalink / raw) To: linux-bluetooth; +Cc: Emil Velikov From: Emil Velikov <emil.velikov@collabora.com> obex.service has an alias(dbus-org.bluez.obex.service) which is created as it's enabled. At the same time, the dbus service references the alias itself. Thus the dbus socket activation can happen, only when the service is already enabled/running... Which defeats the whole purpose. Create/install the respective symlink/alias, so that any user looking for the dbus will start it. Note: we need a hook here instead of LN_S to create the in-tree file, since `install' aggressively dereferences it. --- Makefile.obexd | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile.obexd b/Makefile.obexd index c2b5c6d7a..363295d0e 100644 --- a/Makefile.obexd +++ b/Makefile.obexd @@ -3,6 +3,12 @@ if SYSTEMD systemduserunitdir = $(SYSTEMD_USERUNITDIR) systemduserunit_DATA = obexd/src/obex.service +install-data-hook: + $(LN_S) -f obex.service $(DESTDIR)$(SYSTEMD_USERUNITDIR)/dbus-org.bluez.obex.service + +uninstall-hook: + rm -f $(DESTDIR)$(SYSTEMD_USERUNITDIR)/dbus-org.bluez.obex.service + dbussessionbusdir = $(DBUS_SESSIONBUSDIR) dbussessionbus_DATA = obexd/src/org.bluez.obex.service endif -- 2.43.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service 2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay ` (9 preceding siblings ...) 2024-01-16 13:52 ` [PATCH BlueZ 10/10] build: install dbus-org.bluez.obex.service symlink Emil Velikov via B4 Relay @ 2024-01-16 19:02 ` patchwork-bot+bluetooth 10 siblings, 0 replies; 19+ messages in thread From: patchwork-bot+bluetooth @ 2024-01-16 19:02 UTC (permalink / raw) To: Emil Velikov via B4 Relay; +Cc: linux-bluetooth, emil.velikov Hello: This series was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Tue, 16 Jan 2024 13:51:54 +0000 you wrote: > Hello everyone, > > While looking at our bluez package for the SteamDeck a handful of > paper cuts stood out. Here we tackle the build related ones - a couple > more series will be incoming shortly. > > In a gist we have the following: > - remove manual tracking of .services.in, DEPENDENCIES > - remove unused variables > - polish PKG_CHECK_MODULES handling > - enable linker garbage collection > - create a symlink to dbus-org.bluez.obex.service > > [...] Here is the summary with links: - [BlueZ,01/10] build: remove unused AM_CONDITIONAL https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=6d6294036c39 - [BlueZ,02/10] build: tweak PKG_CHECK_MODULES calls https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=c07fb1fcddad - [BlueZ,03/10] build: require libudev 196, circa 2012 https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=3f490a69cb55 - [BlueZ,04/10] build: remove dummy {conf,state}{dir,_DATA} (no matching commit) - [BlueZ,05/10] build: remove unused variable builtin_nodist (no matching commit) - [BlueZ,06/10] build: remove .service files from DEPENDENCIES lists (no matching commit) - [BlueZ,07/10] build: remove explicit DEPENDENCIES handling (no matching commit) - [BlueZ,08/10] build: manage .service.in files via configure.ac (no matching commit) - [BlueZ,09/10] build: enable gc/dead code removal (no matching commit) - [BlueZ,10/10] build: install dbus-org.bluez.obex.service symlink (no matching commit) You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2024-01-19 15:09 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-16 13:51 [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service Emil Velikov via B4 Relay
2024-01-16 13:51 ` [PATCH BlueZ 01/10] build: remove unused AM_CONDITIONAL Emil Velikov via B4 Relay
2024-01-16 15:41 ` Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service bluez.test.bot
2024-01-16 13:51 ` [PATCH BlueZ 02/10] build: tweak PKG_CHECK_MODULES calls Emil Velikov via B4 Relay
2024-01-16 13:51 ` [PATCH BlueZ 03/10] build: require libudev 196, circa 2012 Emil Velikov via B4 Relay
2024-01-16 13:51 ` [PATCH BlueZ 04/10] build: remove dummy {conf,state}{dir,_DATA} Emil Velikov via B4 Relay
2024-01-16 18:40 ` Luiz Augusto von Dentz
2024-01-17 8:39 ` Emil Velikov
2024-01-18 16:12 ` Emil Velikov
2024-01-18 17:05 ` Luiz Augusto von Dentz
2024-01-19 11:09 ` Emil Velikov
2024-01-19 15:09 ` Luiz Augusto von Dentz
2024-01-16 13:51 ` [PATCH BlueZ 05/10] build: remove unused variable builtin_nodist Emil Velikov via B4 Relay
2024-01-16 13:52 ` [PATCH BlueZ 06/10] build: remove .service files from DEPENDENCIES lists Emil Velikov via B4 Relay
2024-01-16 13:52 ` [PATCH BlueZ 07/10] build: remove explicit DEPENDENCIES handling Emil Velikov via B4 Relay
2024-01-16 13:52 ` [PATCH BlueZ 08/10] build: manage .service.in files via configure.ac Emil Velikov via B4 Relay
2024-01-16 13:52 ` [PATCH BlueZ 09/10] build: enable gc/dead code removal Emil Velikov via B4 Relay
2024-01-16 13:52 ` [PATCH BlueZ 10/10] build: install dbus-org.bluez.obex.service symlink Emil Velikov via B4 Relay
2024-01-16 19:02 ` [PATCH BlueZ 00/10] Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service patchwork-bot+bluetooth
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox