diff options
Diffstat (limited to 'meta/recipes-devtools/elfutils')
-rw-r--r-- | meta/recipes-devtools/elfutils/elfutils-0.148/uclibc-support.patch | 91 | ||||
-rw-r--r-- | meta/recipes-devtools/elfutils/elfutils_0.148.bb | 15 |
2 files changed, 103 insertions, 3 deletions
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/uclibc-support.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/uclibc-support.patch new file mode 100644 index 0000000000..3cf16ac923 --- /dev/null +++ b/meta/recipes-devtools/elfutils/elfutils-0.148/uclibc-support.patch | |||
@@ -0,0 +1,91 @@ | |||
1 | on uclibc systems libintl and libuargp are separate from libc. | ||
2 | so they need to be specified on commandline when we use proxy-libintl | ||
3 | then libintl is a static archive so it should be listed last since | ||
4 | elfutils does not respect disable-nls we need to link in libintl | ||
5 | |||
6 | We add a new option --enable-uclibc which will be used to control | ||
7 | the uclibc specific configurations during build. | ||
8 | |||
9 | Signed-off-by: Khem Raj <raj.khem> | ||
10 | |||
11 | Upstream-Status: Inappropriate [uclibc specific] | ||
12 | |||
13 | Index: elfutils-0.148/configure.ac | ||
14 | =================================================================== | ||
15 | --- elfutils-0.148.orig/configure.ac | ||
16 | +++ elfutils-0.148/configure.ac | ||
17 | @@ -55,9 +55,16 @@ AS_IF([test "$use_locks" = yes], [AC_DEF | ||
18 | |||
19 | AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.]) | ||
20 | |||
21 | +AC_ARG_ENABLE([uclibc], | ||
22 | +AS_HELP_STRING([--enable-uclibc], [Use uclibc for system libraries]), | ||
23 | +use_uclibc=yes, use_uclibc=no) | ||
24 | +AM_CONDITIONAL(USE_UCLIBC, test "$use_uclibc" = yes) | ||
25 | +AS_IF([test "$use_uclibc" = yes], [AC_DEFINE(USE_UCLIBC)]) | ||
26 | + | ||
27 | +AH_TEMPLATE([USE_UCLIBC], [Defined if uclibc libraries are used.]) | ||
28 | + | ||
29 | dnl Add all the languages for which translations are available. | ||
30 | ALL_LINGUAS= | ||
31 | - | ||
32 | AC_PROG_CC | ||
33 | AC_PROG_RANLIB | ||
34 | AC_PROG_YACC | ||
35 | Index: elfutils-0.148/libelf/Makefile.am | ||
36 | =================================================================== | ||
37 | --- elfutils-0.148.orig/libelf/Makefile.am | ||
38 | +++ elfutils-0.148/libelf/Makefile.am | ||
39 | @@ -93,7 +93,12 @@ if !MUDFLAP | ||
40 | libelf_pic_a_SOURCES = | ||
41 | am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os) | ||
42 | |||
43 | + | ||
44 | libelf_so_LDLIBS = | ||
45 | +if USE_UCLIBC | ||
46 | +libelf_so_LDLIBS += -lintl -luargp | ||
47 | +endif | ||
48 | + | ||
49 | if USE_LOCKS | ||
50 | libelf_so_LDLIBS += -lpthread | ||
51 | endif | ||
52 | Index: elfutils-0.148/libdw/Makefile.am | ||
53 | =================================================================== | ||
54 | --- elfutils-0.148.orig/libdw/Makefile.am | ||
55 | +++ elfutils-0.148/libdw/Makefile.am | ||
56 | @@ -98,6 +98,11 @@ if !MUDFLAP | ||
57 | libdw_pic_a_SOURCES = | ||
58 | am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os) | ||
59 | |||
60 | +libdw_so_LDLIBS = | ||
61 | +if USE_UCLIBC | ||
62 | +libdw_so_LDLIBS += -lintl -luargp | ||
63 | +endif | ||
64 | + | ||
65 | libdw_so_SOURCES = | ||
66 | libdw.so: $(srcdir)/libdw.map libdw_pic.a \ | ||
67 | ../libdwfl/libdwfl_pic.a ../libebl/libebl.a \ | ||
68 | @@ -108,7 +113,7 @@ libdw.so: $(srcdir)/libdw.map libdw_pic. | ||
69 | -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \ | ||
70 | -Wl,--version-script,$<,--no-undefined \ | ||
71 | -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\ | ||
72 | - -ldl $(zip_LIBS) | ||
73 | + -ldl $(zip_LIBS) $(libdw_so_LDLIBS) | ||
74 | if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi | ||
75 | ln -fs $@ $@.$(VERSION) | ||
76 | |||
77 | Index: elfutils-0.148/libcpu/Makefile.am | ||
78 | =================================================================== | ||
79 | --- elfutils-0.148.orig/libcpu/Makefile.am | ||
80 | +++ elfutils-0.148/libcpu/Makefile.am | ||
81 | @@ -63,6 +63,10 @@ i386_parse_CFLAGS = -DNMNES="`wc -l < i3 | ||
82 | i386_lex.o: i386_parse.h | ||
83 | i386_gendis_LDADD = $(libeu) -lm $(libmudflap) | ||
84 | |||
85 | +if USE_UCLIBC | ||
86 | +i386_gendis_LDADD += -luargp -lintl | ||
87 | +endif | ||
88 | + | ||
89 | i386_parse.h: i386_parse.c ; | ||
90 | |||
91 | noinst_HEADERS = memory-access.h i386_parse.h i386_data.h | ||
diff --git a/meta/recipes-devtools/elfutils/elfutils_0.148.bb b/meta/recipes-devtools/elfutils/elfutils_0.148.bb index df933f61ae..115ff9bde6 100644 --- a/meta/recipes-devtools/elfutils/elfutils_0.148.bb +++ b/meta/recipes-devtools/elfutils/elfutils_0.148.bb | |||
@@ -30,6 +30,9 @@ SRC_URI += "\ | |||
30 | file://remove-unused.patch \ | 30 | file://remove-unused.patch \ |
31 | file://mempcpy.patch \ | 31 | file://mempcpy.patch \ |
32 | " | 32 | " |
33 | # Only apply when building uclibc based target recipe | ||
34 | SRC_URI_append_libc-uclibc = " ${@['', 'file://uclibc-support.patch']['${PN}' == '${BPN}']}" | ||
35 | |||
33 | # The buildsystem wants to generate 2 .h files from source using a binary it just built, | 36 | # The buildsystem wants to generate 2 .h files from source using a binary it just built, |
34 | # which can not pass the cross compiling, so let's work around it by adding 2 .h files | 37 | # which can not pass the cross compiling, so let's work around it by adding 2 .h files |
35 | # along with the do_configure_prepend() | 38 | # along with the do_configure_prepend() |
@@ -38,9 +41,10 @@ SRC_URI += "\ | |||
38 | file://i386_dis.h \ | 41 | file://i386_dis.h \ |
39 | file://x86_64_dis.h \ | 42 | file://x86_64_dis.h \ |
40 | " | 43 | " |
41 | inherit autotools | 44 | inherit autotools gettext |
42 | 45 | ||
43 | EXTRA_OECONF = "--program-prefix=eu-" | 46 | EXTRA_OECONF = "--program-prefix=eu-" |
47 | EXTRA_OECONF_append_libc-uclibc = " ${@['', '--enable-uclibc']['${PN}' == '${BPN}']}" | ||
44 | 48 | ||
45 | do_configure_prepend() { | 49 | do_configure_prepend() { |
46 | sed -i 's:./i386_gendis:echo\ \#:g' ${S}/libcpu/Makefile.am | 50 | sed -i 's:./i386_gendis:echo\ \#:g' ${S}/libcpu/Makefile.am |
@@ -48,8 +52,13 @@ do_configure_prepend() { | |||
48 | cp ${WORKDIR}/*dis.h ${S}/libcpu | 52 | cp ${WORKDIR}/*dis.h ${S}/libcpu |
49 | } | 53 | } |
50 | 54 | ||
51 | # Only append ldflags for target recipe | 55 | # we can not build complete elfutils when using uclibc |
52 | TARGET_LDFLAGS_libc-uclibc += "${@['', '-lintl -luargp']['${PN}' == '${BPN}']}" | 56 | # but some recipes e.g. gcc 4.5 depends on libelf so we |
57 | # build only libelf for uclibc case | ||
58 | |||
59 | EXTRA_OEMAKE_libc-uclibc = "-C libelf" | ||
60 | EXTRA_OEMAKE_virtclass-native = "" | ||
61 | EXTRA_OEMAKE_virtclass-nativesdk = "" | ||
53 | 62 | ||
54 | BBCLASSEXTEND = "native nativesdk" | 63 | BBCLASSEXTEND = "native nativesdk" |
55 | 64 | ||