diff options
| -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 | ||
