Skip to contentSkip to conversation

dbus: fix building for mipsel.

PATCH In review Graham Gower 2 participants 6 messages Jun 30, 2010 – Jul 2, 2010

lore
Share & tools
lore
#0 lore raw

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
index ec66960..41ec9d1 100644
@@ -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
#1 lore raw

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
index ec66960..baf3139 100644
@@ -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
index 43805a5..25cc5ac 100644
@@ -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
index 35a5267..74386ed 100644
@@ -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
index 4e408e7..a2b7eea 100644
@@ -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
index 830816f..a923166 100644
@@ -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
#4 lore raw
In reply to Graham Gower
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 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 +0 -0
index ec66960..41ec9d1 100644
@@ -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

#5 lore raw
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 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 +0 -0
index ec66960..41ec9d1 100644
@@ -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

#2 lore raw

PATCH v3 1/1 dbus: fix building on mipsel and clean up PIE/pie fix to work again.

In reply to 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

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
index ec66960..55a156d 100644
@@ -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
index 43805a5..25cc5ac 100644
@@ -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
index 35a5267..74386ed 100644
@@ -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
index 4e408e7..a2b7eea 100644
@@ -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
index 830816f..a923166 100644
@@ -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
Acked-by on v3 1/1
#3 lore raw

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 up INC_PR.

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
index ec66960..55a156d 100644
@@ -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
index 43805a5..25cc5ac 100644
@@ -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
index 35a5267..74386ed 100644
@@ -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
index 4e408e7..a2b7eea 100644
@@ -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
index 830816f..a923166 100644
@@ -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.x

 DEFAULT_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