From c527fd1f14c27855a37f2e8ac5346ce8d940ced2 Mon Sep 17 00:00:00 2001 From: Tudor Florea Date: Thu, 16 Oct 2014 03:05:19 +0200 Subject: initial commit for Enea Linux 4.0-140929 Migrated from the internal git server on the daisy-enea-point-release branch Signed-off-by: Tudor Florea --- ...0003-eglibc-menuconfig-build-instructions.patch | 176 +++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 meta/recipes-core/eglibc/eglibc-2.19/0003-eglibc-menuconfig-build-instructions.patch (limited to 'meta/recipes-core/eglibc/eglibc-2.19/0003-eglibc-menuconfig-build-instructions.patch') diff --git a/meta/recipes-core/eglibc/eglibc-2.19/0003-eglibc-menuconfig-build-instructions.patch b/meta/recipes-core/eglibc/eglibc-2.19/0003-eglibc-menuconfig-build-instructions.patch new file mode 100644 index 0000000000..d137f5b318 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.19/0003-eglibc-menuconfig-build-instructions.patch @@ -0,0 +1,176 @@ +Pulled from + +http://www.eglibc.org/archives/patches/msg01035.html + +Upstream-Status: Pending +Signed-off-by: Khem + +As part of the menuconfig development, I encountered some outdated information in the cross-build instructions, libc/EGLIBC.cross-building. This patch updates the file with new (and tested) instructions. It is unrelated to the menuconfig support, but applies after. + +My testing was done with an ARM target, and an x86_64 Linux host, so I converted the instructions to use those host/target types from the original i686/powerpc. Hope that's ok. + + +Thanks, + +-- +Steve Longerbeam | Senior Embedded Engineer, ESD Services +Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538 +P 510.354.5838 | M 408.410.2735 +Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS + + + EGLIBC.cross-building | 59 +++++++++++++++++++++++++++++--------------------- + 1 file changed, 35 insertions(+), 24 deletions(-) + +Index: libc/EGLIBC.cross-building +=================================================================== +--- libc.orig/EGLIBC.cross-building 2012-05-09 19:33:36.522676681 -0700 ++++ libc/EGLIBC.cross-building 2012-05-09 19:36:13.918684298 -0700 +@@ -47,31 +47,34 @@ + EGLIBC requires recent versions of the GNU binutils, GCC, and the + Linux kernel. The web page + documents the current requirements, and lists patches needed for +-certain target architectures. As of this writing, EGLIBC required +-binutils 2.17, GCC 4.1, and Linux 2.6.19.1. ++certain target architectures. As of this writing, these build ++instructions have been tested with binutils 2.22.51, GCC 4.6.2, ++and Linux 3.1. + + First, let's set some variables, to simplify later commands. We'll +-build EGLIBC and GCC for a PowerPC target, known to the Linux kernel +-as 'powerpc', and we'll do the build on an Intel Linux box: ++build EGLIBC and GCC for an ARM target, known to the Linux kernel ++as 'arm', and we'll do the build on an Intel x86_64 Linux box: + +- $ build=i686-pc-linux-gnu ++ $ build=x86_64-pc-linux-gnu + $ host=$build +- $ target=powerpc-none-linux-gnu +- $ linux_arch=powerpc ++ $ target=arm-none-linux-gnueabi ++ $ linux_arch=arm + + We're using the aforementioned versions of Binutils, GCC, and Linux: + +- $ binutilsv=binutils-2.17 +- $ gccv=gcc-4.1.1 +- $ linuxv=linux-2.6.20 ++ $ binutilsv=binutils-2.22.51 ++ $ gccv=gcc-4.6.2 ++ $ linuxv=linux-3.1 + + We're carrying out the entire process under '~/cross-build', which +-contains unpacked source trees: ++contains unpacked source trees for binutils, gcc, and linux kernel, ++along with EGLIBC svn trunk (which can be checked-out with ++'svn co http://www.eglibc.org/svn/trunk eglibc'): + +- $ top=$HOME/cross-build/ppc ++ $ top=$HOME/cross-build/$target + $ src=$HOME/cross-build/src + $ ls $src +- binutils-2.17 gcc-4.1.1 libc linux-2.6.20 ++ binutils-2.22.51 eglibc gcc-4.6.2 linux-3.1 + + We're going to place our build directories in a subdirectory 'obj', + we'll install the cross-development toolchain in 'tools', and we'll +@@ -99,7 +102,7 @@ + + The First GCC + +-For our work, we need a cross-compiler targeting a PowerPC Linux ++For our work, we need a cross-compiler targeting an ARM Linux + system. However, that configuration includes the shared library + 'libgcc_s.so', which is compiled against the EGLIBC headers (which we + haven't installed yet) and linked against 'libc.so' (which we haven't +@@ -125,7 +128,8 @@ + > --prefix=$tools \ + > --without-headers --with-newlib \ + > --disable-shared --disable-threads --disable-libssp \ +- > --disable-libgomp --disable-libmudflap \ ++ > --disable-libgomp --disable-libmudflap --disable-libquadmath \ ++ > --disable-decimal-float --disable-libffi \ + > --enable-languages=c + $ PATH=$tools/bin:$PATH make + $ PATH=$tools/bin:$PATH make install +@@ -162,12 +166,13 @@ + > CXX=$tools/bin/$target-g++ \ + > AR=$tools/bin/$target-ar \ + > RANLIB=$tools/bin/$target-ranlib \ +- > $src/libc/configure \ ++ > $src/eglibc/libc/configure \ + > --prefix=/usr \ + > --with-headers=$sysroot/usr/include \ + > --build=$build \ + > --host=$target \ +- > --disable-profile --without-gd --without-cvs --enable-add-ons ++ > --disable-profile --without-gd --without-cvs \ ++ > --enable-add-ons=nptl,libidn,../ports + + The option '--prefix=/usr' may look strange, but you should never + configure EGLIBC with a prefix other than '/usr': in various places, +@@ -181,6 +186,11 @@ + The '--with-headers' option tells EGLIBC where the Linux headers have + been installed. + ++The '--enable-add-ons=nptl,libidn,../ports' option tells EGLIBC to look ++for the listed glibc add-ons. Most notably the ports add-on (located ++just above the libc sources in the EGLIBC svn tree) is required to ++support ARM targets. ++ + We can now use the 'install-headers' makefile target to install the + headers: + +@@ -223,6 +233,7 @@ + > --prefix=$tools \ + > --with-sysroot=$sysroot \ + > --disable-libssp --disable-libgomp --disable-libmudflap \ ++ > --disable-libffi --disable-libquadmath \ + > --enable-languages=c + $ PATH=$tools/bin:$PATH make + $ PATH=$tools/bin:$PATH make install +@@ -240,13 +251,14 @@ + > CXX=$tools/bin/$target-g++ \ + > AR=$tools/bin/$target-ar \ + > RANLIB=$tools/bin/$target-ranlib \ +- > $src/libc/configure \ ++ > $src/eglibc/libc/configure \ + > --prefix=/usr \ + > --with-headers=$sysroot/usr/include \ + > --with-kconfig=$obj/linux/scripts/kconfig \ + > --build=$build \ + > --host=$target \ +- > --disable-profile --without-gd --without-cvs --enable-add-ons ++ > --disable-profile --without-gd --without-cvs \ ++ > --enable-add-ons=nptl,libidn,../ports + + Note the additional '--with-kconfig' option. This tells EGLIBC where to + find the host config tools used by the kernel 'make config' and 'make +@@ -337,15 +349,15 @@ + ELF Header: + ... + Type: EXEC (Executable file) +- Machine: PowerPC ++ Machine: ARM + + ... + Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + PHDR 0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4 +- INTERP 0x000134 0x10000134 0x10000134 0x0000d 0x0000d R 0x1 +- [Requesting program interpreter: /lib/ld.so.1] +- LOAD 0x000000 0x10000000 0x10000000 0x008f0 0x008f0 R E 0x10000 ++ INTERP 0x000134 0x00008134 0x00008134 0x00013 0x00013 R 0x1 ++ [Requesting program interpreter: /lib/ld-linux.so.3] ++ LOAD 0x000000 0x00008000 0x00008000 0x0042c 0x0042c R E 0x8000 + ... + + Looking at the dynamic section of the installed 'libgcc_s.so', we see +@@ -357,7 +369,6 @@ + Dynamic section at offset 0x1083c contains 24 entries: + Tag Type Name/Value + 0x00000001 (NEEDED) Shared library: [libc.so.6] +- 0x00000001 (NEEDED) Shared library: [ld.so.1] + 0x0000000e (SONAME) Library soname: [libgcc_s.so.1] + ... + -- cgit v1.2.3-54-g00ecf