Skip to contentSkip to conversation

fix the build of mklibs-native on Ubuntu 9.04

PATCH In review Dexuan Cui 3 participants 5 messages Feb 16, 2011 – Feb 17, 2011

lore
Share & tools
lore

Dexuan Cui

author
#0 lore raw

cover fix the build of mklibs-native on Ubuntu 9.04

From: Dexuan Cui <[email protected]>

libc6-dev in Ubuntu 9.04 is so old that the elf.h doesn't define STT_GNU_IFUNC, so we have to define it ourselves.

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: dcui/master
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dcui/master

Thanks,
Dexuan Cui <[email protected]>
---

Dexuan Cui (1):
mklibs-native: fix the build on Ubuntu 9.04 by defining STT_GNU_IFUNC

 .../mklibs/files/fix_STT_GNU_IFUNC.patch           |   23 ++++++++++++++++++++
 .../mklibs/mklibs-native_0.1.31.bb                 |    3 +-
 2 files changed, 25 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/mklibs/files/fix_STT_GNU_IFUNC.patch
Signature · 1 line
1.7.2
author
#1 lore raw

PATCH 1/1 mklibs-native: fix the build on Ubuntu 9.04 by defining STT_GNU_IFUNC

From: Dexuan Cui <[email protected]>

mklibs-native needs elf.h (that is supplied by libc6-dev).
since STAGING_INCDIR_NATIVE doesn't contain elf.h (we don't have eglibc-native), so the host's /usr/include/elf.h is used.
Unluckily, the libc6-dev in Ubuntu 9.04 is so old that the elf.h doesn't define STT_GNU_IFUNC, so we have to define it ourselves.

Fixes [BUGID #726]

---
 .../mklibs/files/fix_STT_GNU_IFUNC.patch           |   23 ++++++++++++++++++++
 .../mklibs/mklibs-native_0.1.31.bb                 |    3 +-
 2 files changed, 25 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/mklibs/files/fix_STT_GNU_IFUNC.patch
meta/recipes-devtools/mklibs/files/fix_STT_GNU_IFUNC.patch new file +23 -0
new file mode 100644
index 0000000..88badde
@@ -0,0 +1,23 @@
+The libc6-dev in Ubuntu 9.04 is so old that the elf.h doesn't
+define STT_GNU_IFUNC, so we have to define it ourselves.
+-- Dexuan Cui ([email protected]) Feb 16, 2011.
+
+diff --git a/src/mklibs-readelf/main.cpp b/src/mklibs-readelf/main.cpp
+index 2444c39..56d93f8 100644
+--- a/src/mklibs-readelf/main.cpp
++++ b/src/mklibs-readelf/main.cpp
+@@ -6,6 +6,14 @@
+ #include <vector>
+ 
+ #include <elf.h>
++/*
++ * The /usr/include/elf.h in some distributions(like Ubuntu 9.04) doesn't
++ * define the macro. We need to define it here.
++ */
++#ifndef STT_GNU_IFUNC
++#define STT_GNU_IFUNC   10              /* Symbol is indirect code object */
++#endif
++
+ #include <getopt.h>
+ 
+ #include "elf.hpp"
meta/recipes-devtools/mklibs/mklibs-native_0.1.31.bb +2 -1
index 2044d12..7f4afc0 100644
@@ -5,10 +5,11 @@ LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://debian/copyright;md5=98d31037b13d896e33890738ef01af64"
 DEPENDS = "python-native"
 
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "http://ftp.de.debian.org/debian/pool/main/m/mklibs/${BPN}_${PV}.tar.gz \
 	file://ac_init_fix.patch\
+	file://fix_STT_GNU_IFUNC.patch\
 "
 
 SRC_URI[md5sum] = "f4df0307ccbdf60070e42277513f27ed"
Signature · 1 line
1.7.2
#2 lore raw
In reply to Dexuan Cui
Quoted 8 lines · Dexuan Cui

From: Dexuan Cui<[email protected]>

libc6-dev in Ubuntu 9.04 is so old that the elf.h doesn't define STT_GNU_IFUNC, so we have to define it ourselves.

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: dcui/master
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dcui/master

Is this also an issue on 8.04? 9.04 isn't supported anymore (9.10, 10.04, 10.10 are the top 3) but 8.04 is still under LTS in various configurations.

Signature · 2 lines
Tom Rini
Mentor Graphics Corporation
#3 lore raw
Quoted 6 lines · Tom Rini
Quoted 5 lines · Dexuan Cui

From: Dexuan Cui<[email protected]>

libc6-dev in Ubuntu 9.04 is so old that the elf.h doesn't define STT_GNU_IFUNC, so we have to define it ourselves.

Quoted 8 lines
Quoted 3 lines

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: dcui/master
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dcui/master

Is this also an issue on 8.04? 9.04 isn't supported anymore (9.10, 10.04, 10.10 are the top 3) but 8.04 is still under LTS in various configurations.

9.04 may not be supported by Ubuntu anymore, but I've got lots of commercial
customers still using 9.04.. :( (I suspect it is also a problem w/ 8.04)

#4 lore raw
Quoted 12 lines · Mark Hatle
Quoted 11 lines · Tom Rini
Quoted 9 lines · Dexuan Cui

From: Dexuan Cui<[email protected]>

libc6-dev in Ubuntu 9.04 is so old that the elf.h doesn't define STT_GNU_IFUNC, so we have to define it ourselves.

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: dcui/master
Browse:
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dcui/master

Quoted 7 lines
Quoted 4 lines

Is this also an issue on 8.04? 9.04 isn't supported anymore (9.10, 10.04, 10.10 are the top 3) but 8.04 is still under LTS in various configurations.

9.04 may not be supported by Ubuntu anymore, but I've got lots of commercial customers still using 9.04.. :(

Me too...
I'll try to update to 11.04 in three months when it's released. :-)

Quoted 1 line

(I suspect it is also a problem w/ 8.04)

I also suspect that though I can't find a 8.04 host to try it.

Thanks,
-- Dexuan