diff mbox series

systemd: Explicitly add hidden attribute to __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP

Message ID 20180303024705.1391-1-raj.khem@gmail.com
State Accepted
Commit a54b025bfde774353aa278ca78fa0116c52b6d71
Headers show
Series systemd: Explicitly add hidden attribute to __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP | expand

Commit Message

Khem Raj March 3, 2018, 2:47 a.m. UTC
These symbols appear in dynsyms of libsystemd.so and musl loader
doesnt like it

Error relocating /mnt/a/oe/build/tmp/work/i586-bec-linux-musl/avahi/0.7-r0/recipe-sysroot//lib/libsystemd.so.0: __start_BUS_ERROR_MAP: symbol not found
Error relocating /mnt/a/oe/build/tmp/work/i586-bec-linux-musl/avahi/0.7-r0/recipe-sysroot//lib/libsystemd.so.0: __stop_BUS_ERROR_MAP: symbol not found

[YOCTO #12577]

Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
 ...rt_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch | 34 ++++++++++++++++++++++
 meta/recipes-core/systemd/systemd_234.bb           |  1 +
 2 files changed, 35 insertions(+)
 create mode 100644 meta/recipes-core/systemd/systemd/0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch

-- 
2.16.2

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Comments

André Draszik March 9, 2018, 8:33 a.m. UTC | #1
I see this, too.

BTW, some more info:


This looks similar to
    https://github.com/systemd/systemd/issues/234
and was worked-around in systemd commit aac7c5ed8bc6
("build-sys: hide magic section variables from exported symbols")
until reverted in commit 780950a2ba58 ("Revert "build-sys: hide
magic section variables from exported symbols"") because binutils
was fixed since.
This error should only ever happen with old versions of ld.gold.
In addition, gold should be fixed by now:
    https://sourceware.org/bugzilla/show_bug.cgi?id=18548
    https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5417c94d1a944d1a27f99240e5d62a6d7cd324f1
but something is amiss here.

ld -v gives
GNU ld (GNU Binutils) 2.30.0.20180208

so this is a bit strange...


Cheers,
Andre'

On Fri, 2018-03-02 at 18:47 -0800, Khem Raj wrote:
> These symbols appear in dynsyms of libsystemd.so and musl loader

> doesnt like it

> 

> Error relocating /mnt/a/oe/build/tmp/work/i586-bec-linux-musl/avahi/0.7-

> r0/recipe-sysroot//lib/libsystemd.so.0: __start_BUS_ERROR_MAP: symbol not

> found

> Error relocating /mnt/a/oe/build/tmp/work/i586-bec-linux-musl/avahi/0.7-

> r0/recipe-sysroot//lib/libsystemd.so.0: __stop_BUS_ERROR_MAP: symbol not

> found

> 

> [YOCTO #12577]

> 

> Signed-off-by: Khem Raj <raj.khem@gmail.com>

> ---

>  ...rt_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch | 34

> ++++++++++++++++++++++

>  meta/recipes-core/systemd/systemd_234.bb           |  1 +

>  2 files changed, 35 insertions(+)

>  create mode 100644 meta/recipes-core/systemd/systemd/0001-Hide-

> __start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch

> 

> diff --git a/meta/recipes-core/systemd/systemd/0001-Hide-

> __start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/meta/recipes-

> core/systemd/systemd/0001-Hide-__start_BUS_ERROR_MAP-and-

> __stop_BUS_ERROR_MAP.patch

> new file mode 100644

> index 0000000000..2cffc426ed

> --- /dev/null

> +++ b/meta/recipes-core/systemd/systemd/0001-Hide-__start_BUS_ERROR_MAP-

> and-__stop_BUS_ERROR_MAP.patch

> @@ -0,0 +1,34 @@

> +From 687a5af8dc5d38f918a6ce08fed5297234bf8346 Mon Sep 17 00:00:00 2001

> +From: Khem Raj <raj.khem@gmail.com>

> +Date: Fri, 2 Mar 2018 18:00:17 -0800

> +Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP

> +

> +for currently unknown reasons they get exported to the shared libries

> +even without being listed in the sym file

> +

> +Signed-off-by: Khem Raj <raj.khem@gmail.com>

> +---

> +

> +Upstream-Status: Pending [ Conditional on master needing this, 234 does

> need it ]

> +

> + src/libsystemd/sd-bus/bus-error.c | 4 ++--

> + 1 file changed, 2 insertions(+), 2 deletions(-)

> +

> +diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-

> bus/bus-error.c

> +index 378f7a377..49d797abd 100644

> +--- a/src/libsystemd/sd-bus/bus-error.c

> ++++ b/src/libsystemd/sd-bus/bus-error.c

> +@@ -71,8 +71,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map

> bus_standard_errors[] = {

> + };

> + 

> + /* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP

> section */

> +-extern const sd_bus_error_map __start_BUS_ERROR_MAP[];

> +-extern const sd_bus_error_map __stop_BUS_ERROR_MAP[];

> ++extern const sd_bus_error_map __start_BUS_ERROR_MAP[] _hidden_;

> ++extern const sd_bus_error_map __stop_BUS_ERROR_MAP[] _hidden_;

> + 

> + /* Additional maps registered with sd_bus_error_add_map() are in this

> +  * NULL terminated array */

> +-- 

> +2.16.2

> +

> diff --git a/meta/recipes-core/systemd/systemd_234.bb b/meta/recipes-

> core/systemd/systemd_234.bb

> index d12e94f463..b15e5a41db 100644

> --- a/meta/recipes-core/systemd/systemd_234.bb

> +++ b/meta/recipes-core/systemd/systemd_234.bb

> @@ -51,6 +51,7 @@ SRC_URI =

> "git://github.com/systemd/systemd.git;protocol=git \

>             file://0001-meson-update-header-file-to-detect-

> memfd_create.patch \

>             file://0002-configure.ac-Check-if-memfd_create-is-already-

> define.patch \

>             file://0003-fileio-include-sys-mman.h.patch \

> +           file://0001-Hide-__start_BUS_ERROR_MAP-and-

> __stop_BUS_ERROR_MAP.patch \

>             "

>  SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-

> device-timeout-to-2.patch"

>  

> -- 

> 2.16.2

> 

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
diff mbox series

Patch

diff --git a/meta/recipes-core/systemd/systemd/0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/meta/recipes-core/systemd/systemd/0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
new file mode 100644
index 0000000000..2cffc426ed
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
@@ -0,0 +1,34 @@ 
+From 687a5af8dc5d38f918a6ce08fed5297234bf8346 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Mar 2018 18:00:17 -0800
+Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
+
+for currently unknown reasons they get exported to the shared libries
+even without being listed in the sym file
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+
+Upstream-Status: Pending [ Conditional on master needing this, 234 does need it ]
+
+ src/libsystemd/sd-bus/bus-error.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
+index 378f7a377..49d797abd 100644
+--- a/src/libsystemd/sd-bus/bus-error.c
++++ b/src/libsystemd/sd-bus/bus-error.c
+@@ -71,8 +71,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
+ };
+ 
+ /* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */
+-extern const sd_bus_error_map __start_BUS_ERROR_MAP[];
+-extern const sd_bus_error_map __stop_BUS_ERROR_MAP[];
++extern const sd_bus_error_map __start_BUS_ERROR_MAP[] _hidden_;
++extern const sd_bus_error_map __stop_BUS_ERROR_MAP[] _hidden_;
+ 
+ /* Additional maps registered with sd_bus_error_add_map() are in this
+  * NULL terminated array */
+-- 
+2.16.2
+
diff --git a/meta/recipes-core/systemd/systemd_234.bb b/meta/recipes-core/systemd/systemd_234.bb
index d12e94f463..b15e5a41db 100644
--- a/meta/recipes-core/systemd/systemd_234.bb
+++ b/meta/recipes-core/systemd/systemd_234.bb
@@ -51,6 +51,7 @@  SRC_URI = "git://github.com/systemd/systemd.git;protocol=git \
            file://0001-meson-update-header-file-to-detect-memfd_create.patch \
            file://0002-configure.ac-Check-if-memfd_create-is-already-define.patch \
            file://0003-fileio-include-sys-mman.h.patch \
+           file://0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
            "
 SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"