dbus: fix building for mipsel.
PATCH 1/1 dbus: fix building for mipsel.
Mipsel lives in a bizarro world where the following error happens:
| CCLD dbus-daemon-launch-helper | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: can not make stub section: File format not recognized | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: failed to set dynamic section sizes: File format not recognized | collect2: ld returned 1 exit status
Fix as noted by the openwrt folks:
https://dev.openwrt.org/changeset/18308
--- recipes/dbus/dbus.inc | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
recipes/dbus/dbus.inc +3 -0
@@ -38,6 +38,9 @@ EXTRA_OECONF = "\ do_compile_prepend_mipsel() { sed -i -e 's/\-fPIE//' -e 's/\-pie\ \-Wl\,\-z\,relro//' bus/Makefile } +do_configure_prepend_mipsel() { + sed -i -e 's/-Wl,--gc-sections/--gc-sections/' ${S}/configure +} do_install_append() { install -d ${D}${sysconfdir}/init.d
Signature · 1 line
1.7.1
PATCH v2 1/1 dbus: fix building for mipsel and fix PIE segfault issue (again).
Subject: [PATCH v2] dbus: fix building for mipsel and fix PIE segfault issue (again).
Previous fPIE fix no longer works.
--- recipes/dbus/dbus.inc | 9 ++++++--- recipes/dbus/dbus_1.2.20.bb | 2 ++ recipes/dbus/dbus_1.2.22.bb | 2 ++ recipes/dbus/dbus_1.2.24.bb | 2 ++ recipes/dbus/dbus_1.3.0.bb | 4 ++-- 5 files changed, 14 insertions(+), 5 deletions(-)
recipes/dbus/dbus.inc +6 -3
@@ -4,7 +4,7 @@ SECTION = "base" LICENSE = "GPL" DEPENDS = "expat glib-2.0 virtual/libintl libsm libice virtual/libx11" -INC_PR = "r18" +INC_PR = "r19" SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
@@ -35,8 +35,11 @@ EXTRA_OECONF = "\ ${EXTRA_OECONF_X} \ " -do_compile_prepend_mipsel() { - sed -i -e 's/\-fPIE//' -e 's/\-pie\ \-Wl\,\-z\,relro//' bus/Makefile +do_configure_prepend_mipsel() { + sed -i -e 's/\-fPIE//' \ + -e 's/\-pie\ \-Wl\,\-z\,relro//' \ + -e 's/-Wl,--gc-sections/--gc-sections/' \ + ${S}/configure.in } do_install_append() {
recipes/dbus/dbus_1.2.20.bb +2 -0
@@ -1,5 +1,7 @@ include dbus.inc +PR = "${INC_PR}.0" + SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \ file://tmpdir.patch \
recipes/dbus/dbus_1.2.22.bb +2 -0
@@ -1,5 +1,7 @@ include dbus.inc +PR = "${INC_PR}.0" + SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \ file://tmpdir.patch \
recipes/dbus/dbus_1.2.24.bb +2 -0
@@ -1,5 +1,7 @@ include dbus.inc +PR = "${INC_PR}.0" + SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \ file://tmpdir.patch \
recipes/dbus/dbus_1.3.0.bb +2 -2
@@ -1,5 +1,7 @@ include dbus.inc +PR = "${INC_PR}.0" + SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \ \
@@ -20,7 +22,5 @@ SRC_URI = "\ # This is the development version of dbus that will lead to 1.4.x DEFAULT_PREFERENCE = "-1" -PR = "r2" - SRC_URI[md5sum] = "b3298d5ce0e4ad4731b1e4e1787d56bb" SRC_URI[sha256sum] = "fe32b49667894cf91b0a97503163be5c4814ecf67259e8feb26d1ba57cb03dae"
Signature · 1 line
1.7.1
Quoted 23 lines · Graham Gower
Mipsel lives in a bizarro world where the following error happens:
| CCLD dbus-daemon-launch-helper | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: can not make stub section: File format not recognized | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: failed to set dynamic section sizes: File format not recognized | collect2: ld returned 1 exit statusFix as noted by the openwrt folks:
https://dev.openwrt.org/changeset/18308Signed-off-by Graham Gower <[email protected]>---
recipes/dbus/dbus.inc | 3 +++1 files changed, 3 insertions(+), 0 deletions(-)recipes/dbus/dbus.inc +0
-0@@ -38,6 +38,9 @@ EXTRA_OECONF = "\ do_compile_prepend_mipsel() {sed -i -e 's/\-fPIE//' -e 's/\-pie\ \-Wl\,\-z\,relro//' bus/Makefile }
recipes/dbus/dbus.inc EXTRA_OECONF = "\ · line 43
Quoted 3 lines
recipes/dbus/dbus.inc +3
-0+do_configure_prepend_mipsel() { + sed -i -e 's/-Wl,--gc-sections/--gc-sections/' ${S}/configure +}
this changes this to be a compiler option instead of gcc driver passing it to link step and gcc does not have such option so it should error out. I wonder how does this work. just removing it fully would be understandable if say gc-sections does not work in ld.
Quoted 12 lines
do_install_append() {
install -d ${D}${sysconfdir}/init.d
--
1.7.1_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Quoted 25 lines · Khem Raj
Quoted 24 lines · Graham Gower
Mipsel lives in a bizarro world where the following error happens:
| CCLD dbus-daemon-launch-helper | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: can not make stub section: File format not recognized | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: failed to set dynamic section sizes: File format not recognized | collect2: ld returned 1 exit statusFix as noted by the openwrt folks:
https://dev.openwrt.org/changeset/18308Signed-off-by Graham Gower <[email protected]>---
recipes/dbus/dbus.inc | 3 +++1 files changed, 3 insertions(+), 0 deletions(-)recipes/dbus/dbus.inc +0
-0@@ -38,6 +38,9 @@ EXTRA_OECONF = "\ do_compile_prepend_mipsel() {sed -i -e 's/\-fPIE//' -e 's/\-pie\ \-Wl\,\-z\,relro//' bus/Makefile }
+do_configure_prepend_mipsel() {
Quoted 8 lines
Quoted 2 lines
+ sed -i -e 's/-Wl,--gc-sections/--gc-sections/' ${S}/configure +}
this changes this to be a compiler option instead of gcc driver passing it to link step and gcc does not have such option so it should error out. I wonder how does this work. just removing it fully would be understandable if say gc-sections does not work in ld.
Hmmm. Right you are.
Digging further, I see the configure script checks if gcc compiles a dummy program with those options and uses them if it succeeds. Gcc does indeed error out in this case, causing the configure script to not use --gc-sections.
-Graham
PATCH v3 1/1 dbus: fix building on mipsel and clean up PIE/pie fix to work again.
In reply to Graham GowerSubject: [PATCH v3] dbus: fix building on mipsel and clean up PIE/pie fix to work again.
D-Bus fails to link with --gc-sections on mipsel.
| CCLD dbus-daemon | collect2: ld returned 1 exit status | make[2]: *** [dbus-daemon] Error 1 | make[2]: *** Waiting for unfinished jobs.... | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: can not make stub section: File format not recognized | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: failed to set dynamic section sizes: File format not recognized
Also, the previous fPIE/pie fix no longer works.
While here, clean up INC_PR.
--- recipes/dbus/dbus.inc | 11 ++++++++--- recipes/dbus/dbus_1.2.20.bb | 2 ++ recipes/dbus/dbus_1.2.22.bb | 2 ++ recipes/dbus/dbus_1.2.24.bb | 2 ++ recipes/dbus/dbus_1.3.0.bb | 4 ++-- 5 files changed, 16 insertions(+), 5 deletions(-)
recipes/dbus/dbus.inc +8 -3
@@ -4,7 +4,7 @@ SECTION = "base" LICENSE = "GPL" DEPENDS = "expat glib-2.0 virtual/libintl libsm libice virtual/libx11" -INC_PR = "r18" +INC_PR = "r19" SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
@@ -35,8 +35,13 @@ EXTRA_OECONF = "\ ${EXTRA_OECONF_X} \ " -do_compile_prepend_mipsel() { - sed -i -e 's/\-fPIE//' -e 's/\-pie\ \-Wl\,\-z\,relro//' bus/Makefile +# On mipsel, D-Bus fails to link with --gc-sections and segfaults before main() +# when built with -fPIE/-pie. +do_configure_prepend_mipsel() { + sed -i -e 's/\-fPIE//' \ + -e 's/\-pie\ \-Wl\,\-z\,relro//' \ + -e 's/-Wl,--gc-sections//' \ + ${S}/configure.in } do_install_append() {
recipes/dbus/dbus_1.2.20.bb +2 -0
@@ -1,5 +1,7 @@ include dbus.inc +PR = "${INC_PR}.0" + SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \ file://tmpdir.patch \
recipes/dbus/dbus_1.2.22.bb +2 -0
@@ -1,5 +1,7 @@ include dbus.inc +PR = "${INC_PR}.0" + SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \ file://tmpdir.patch \
recipes/dbus/dbus_1.2.24.bb +2 -0
@@ -1,5 +1,7 @@ include dbus.inc +PR = "${INC_PR}.0" + SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \ file://tmpdir.patch \
recipes/dbus/dbus_1.3.0.bb +2 -2
@@ -1,5 +1,7 @@ include dbus.inc +PR = "${INC_PR}.0" + SRC_URI = "\ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \ \
@@ -20,7 +22,5 @@ SRC_URI = "\ # This is the development version of dbus that will lead to 1.4.x DEFAULT_PREFERENCE = "-1" -PR = "r2" - SRC_URI[md5sum] = "b3298d5ce0e4ad4731b1e4e1787d56bb" SRC_URI[sha256sum] = "fe32b49667894cf91b0a97503163be5c4814ecf67259e8feb26d1ba57cb03dae"
Signature · 1 line
1.7.1
Re: [PATCH v3] dbus: fix building on mipsel and clean up PIE/pie fix to work again.
Quoted 11 lines · Graham Gower
Subject: [PATCH v3] dbus: fix building on mipsel and clean up PIE/pie fix to work again.
D-Bus fails to link with --gc-sections on mipsel.
| CCLD dbus-daemon | collect2: ld returned 1 exit status | make[2]: *** [dbus-daemon] Error 1 | make[2]: *** Waiting for unfinished jobs.... | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: can not make stub section: File format not recognized | /home/grg/oe2/tmp/cross/mipsel/lib/gcc/mipsel-oe-linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: failed to set dynamic section sizes: File format not recognized
Quoted 4 lines
Also, the previous fPIE/pie fix no longer works.
While here, clean upINC_PR.Signed-off-by Graham Gower <[email protected]>
looks good.
Quoted 103 lines
---
recipes/dbus/dbus.inc | 11 ++++++++---recipes/dbus/dbus_1.2.20.bb | 2 ++ recipes/dbus/dbus_1.2.22.bb | 2 ++ recipes/dbus/dbus_1.2.24.bb | 2 ++ recipes/dbus/dbus_1.3.0.bb | 4 ++-- 5 files changed, 16 insertions(+), 5 deletions(-)recipes/dbus/dbus.inc +0
-0@@ -4,7 +4,7 @@ SECTION = "base"LICENSE = "GPL"
DEPENDS = "expat glib-2.0 virtual/libintl libsm libice virtual/libx11"recipes/dbus/dbus.inc +1
-1-INC_PR = "r18" +INC_PR = "r19"SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \recipes/dbus/dbus.inc +0
-0@@ -35,8 +35,13 @@ EXTRA_OECONF = "\ ${EXTRA_OECONF_X} \"
recipes/dbus/dbus.inc +7
-2-do_compile_prepend_mipsel() { - sed -i -e 's/\-fPIE//' -e 's/\-pie\ \-Wl\,\-z\,relro//' bus/Makefile +# On mipsel, D-Bus fails to link with --gc-sections and segfaults before main() +# when built with -fPIE/-pie. +do_configure_prepend_mipsel() { + sed -i -e 's/\-fPIE//' \ + -e 's/\-pie\ \-Wl\,\-z\,relro//' \ + -e 's/-Wl,--gc-sections//' \ + ${S}/configure.in}
do_install_append() {
recipes/dbus/dbus_1.2.20.bb +0
-0@@ -1,5 +1,7 @@include dbus.inc
recipes/dbus/dbus_1.2.20.bb +2
-0+PR = "${INC_PR}.0" +SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
file://tmpdir.patch \recipes/dbus/dbus_1.2.22.bb +0
-0@@ -1,5 +1,7 @@include dbus.inc
recipes/dbus/dbus_1.2.22.bb +2
-0+PR = "${INC_PR}.0" +SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
file://tmpdir.patch \recipes/dbus/dbus_1.2.24.bb +0
-0@@ -1,5 +1,7 @@include dbus.inc
recipes/dbus/dbus_1.2.24.bb +2
-0+PR = "${INC_PR}.0" +SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
file://tmpdir.patch \recipes/dbus/dbus_1.3.0.bb +0
-0@@ -1,5 +1,7 @@include dbus.inc
recipes/dbus/dbus_1.3.0.bb +2
-0+PR = "${INC_PR}.0" +SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
\recipes/dbus/dbus_1.3.0.bb +0
-0@@ -20,7 +22,5 @@ SRC_URI = "\ # This is the development version of dbus that will lead to 1.4.xDEFAULT_PREFERENCE = "-1"
recipes/dbus/dbus_1.3.0.bb +0
-2-PR = "r2" -SRC_URI[md5sum] = "
b3298d5ce0e4ad4731b1e4e1787d56bb"
SRC_URI[sha256sum] = "fe32b49667894cf91b0a97503163be5c4814ecf67259e8feb26d1ba57cb03dae" --
1.7.1_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel