diff options
| author | Saul Wold <sgw@linux.intel.com> | 2013-12-27 10:13:26 -0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-02 12:50:26 +0000 |
| commit | b1f3da93bf2521dbd01b94ee340d9850e221dcf9 (patch) | |
| tree | 7bc8a876b4074e693c08dd53bef4978590a33159 /meta/recipes-core/eglibc/eglibc-2.17/0003-eglibc-menuconfig-build-instructions.patch | |
| parent | eae54224ab24e09baca3753c9a686489298fd034 (diff) | |
| download | poky-b1f3da93bf2521dbd01b94ee340d9850e221dcf9.tar.gz | |
eglibc: Remove older version 2.17
(From OE-Core rev: 14066651cd74724dcb59c10f994f5b2bf38a4745)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/eglibc/eglibc-2.17/0003-eglibc-menuconfig-build-instructions.patch')
| -rw-r--r-- | meta/recipes-core/eglibc/eglibc-2.17/0003-eglibc-menuconfig-build-instructions.patch | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/0003-eglibc-menuconfig-build-instructions.patch b/meta/recipes-core/eglibc/eglibc-2.17/0003-eglibc-menuconfig-build-instructions.patch deleted file mode 100644 index d137f5b318..0000000000 --- a/meta/recipes-core/eglibc/eglibc-2.17/0003-eglibc-menuconfig-build-instructions.patch +++ /dev/null | |||
| @@ -1,176 +0,0 @@ | |||
| 1 | Pulled from | ||
| 2 | |||
| 3 | http://www.eglibc.org/archives/patches/msg01035.html | ||
| 4 | |||
| 5 | Upstream-Status: Pending | ||
| 6 | Signed-off-by: Khem | ||
| 7 | |||
| 8 | 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. | ||
| 9 | |||
| 10 | 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. | ||
| 11 | |||
| 12 | |||
| 13 | Thanks, | ||
| 14 | |||
| 15 | -- | ||
| 16 | Steve Longerbeam | Senior Embedded Engineer, ESD Services | ||
| 17 | Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538 | ||
| 18 | P 510.354.5838 | M 408.410.2735 | ||
| 19 | Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS | ||
| 20 | |||
| 21 | |||
| 22 | EGLIBC.cross-building | 59 +++++++++++++++++++++++++++++--------------------- | ||
| 23 | 1 file changed, 35 insertions(+), 24 deletions(-) | ||
| 24 | |||
| 25 | Index: libc/EGLIBC.cross-building | ||
| 26 | =================================================================== | ||
| 27 | --- libc.orig/EGLIBC.cross-building 2012-05-09 19:33:36.522676681 -0700 | ||
| 28 | +++ libc/EGLIBC.cross-building 2012-05-09 19:36:13.918684298 -0700 | ||
| 29 | @@ -47,31 +47,34 @@ | ||
| 30 | EGLIBC requires recent versions of the GNU binutils, GCC, and the | ||
| 31 | Linux kernel. The web page <http://www.eglibc.org/prerequisites> | ||
| 32 | documents the current requirements, and lists patches needed for | ||
| 33 | -certain target architectures. As of this writing, EGLIBC required | ||
| 34 | -binutils 2.17, GCC 4.1, and Linux 2.6.19.1. | ||
| 35 | +certain target architectures. As of this writing, these build | ||
| 36 | +instructions have been tested with binutils 2.22.51, GCC 4.6.2, | ||
| 37 | +and Linux 3.1. | ||
| 38 | |||
| 39 | First, let's set some variables, to simplify later commands. We'll | ||
| 40 | -build EGLIBC and GCC for a PowerPC target, known to the Linux kernel | ||
| 41 | -as 'powerpc', and we'll do the build on an Intel Linux box: | ||
| 42 | +build EGLIBC and GCC for an ARM target, known to the Linux kernel | ||
| 43 | +as 'arm', and we'll do the build on an Intel x86_64 Linux box: | ||
| 44 | |||
| 45 | - $ build=i686-pc-linux-gnu | ||
| 46 | + $ build=x86_64-pc-linux-gnu | ||
| 47 | $ host=$build | ||
| 48 | - $ target=powerpc-none-linux-gnu | ||
| 49 | - $ linux_arch=powerpc | ||
| 50 | + $ target=arm-none-linux-gnueabi | ||
| 51 | + $ linux_arch=arm | ||
| 52 | |||
| 53 | We're using the aforementioned versions of Binutils, GCC, and Linux: | ||
| 54 | |||
| 55 | - $ binutilsv=binutils-2.17 | ||
| 56 | - $ gccv=gcc-4.1.1 | ||
| 57 | - $ linuxv=linux-2.6.20 | ||
| 58 | + $ binutilsv=binutils-2.22.51 | ||
| 59 | + $ gccv=gcc-4.6.2 | ||
| 60 | + $ linuxv=linux-3.1 | ||
| 61 | |||
| 62 | We're carrying out the entire process under '~/cross-build', which | ||
| 63 | -contains unpacked source trees: | ||
| 64 | +contains unpacked source trees for binutils, gcc, and linux kernel, | ||
| 65 | +along with EGLIBC svn trunk (which can be checked-out with | ||
| 66 | +'svn co http://www.eglibc.org/svn/trunk eglibc'): | ||
| 67 | |||
| 68 | - $ top=$HOME/cross-build/ppc | ||
| 69 | + $ top=$HOME/cross-build/$target | ||
| 70 | $ src=$HOME/cross-build/src | ||
| 71 | $ ls $src | ||
| 72 | - binutils-2.17 gcc-4.1.1 libc linux-2.6.20 | ||
| 73 | + binutils-2.22.51 eglibc gcc-4.6.2 linux-3.1 | ||
| 74 | |||
| 75 | We're going to place our build directories in a subdirectory 'obj', | ||
| 76 | we'll install the cross-development toolchain in 'tools', and we'll | ||
| 77 | @@ -99,7 +102,7 @@ | ||
| 78 | |||
| 79 | The First GCC | ||
| 80 | |||
| 81 | -For our work, we need a cross-compiler targeting a PowerPC Linux | ||
| 82 | +For our work, we need a cross-compiler targeting an ARM Linux | ||
| 83 | system. However, that configuration includes the shared library | ||
| 84 | 'libgcc_s.so', which is compiled against the EGLIBC headers (which we | ||
| 85 | haven't installed yet) and linked against 'libc.so' (which we haven't | ||
| 86 | @@ -125,7 +128,8 @@ | ||
| 87 | > --prefix=$tools \ | ||
| 88 | > --without-headers --with-newlib \ | ||
| 89 | > --disable-shared --disable-threads --disable-libssp \ | ||
| 90 | - > --disable-libgomp --disable-libmudflap \ | ||
| 91 | + > --disable-libgomp --disable-libmudflap --disable-libquadmath \ | ||
| 92 | + > --disable-decimal-float --disable-libffi \ | ||
| 93 | > --enable-languages=c | ||
| 94 | $ PATH=$tools/bin:$PATH make | ||
| 95 | $ PATH=$tools/bin:$PATH make install | ||
| 96 | @@ -162,12 +166,13 @@ | ||
| 97 | > CXX=$tools/bin/$target-g++ \ | ||
| 98 | > AR=$tools/bin/$target-ar \ | ||
| 99 | > RANLIB=$tools/bin/$target-ranlib \ | ||
| 100 | - > $src/libc/configure \ | ||
| 101 | + > $src/eglibc/libc/configure \ | ||
| 102 | > --prefix=/usr \ | ||
| 103 | > --with-headers=$sysroot/usr/include \ | ||
| 104 | > --build=$build \ | ||
| 105 | > --host=$target \ | ||
| 106 | - > --disable-profile --without-gd --without-cvs --enable-add-ons | ||
| 107 | + > --disable-profile --without-gd --without-cvs \ | ||
| 108 | + > --enable-add-ons=nptl,libidn,../ports | ||
| 109 | |||
| 110 | The option '--prefix=/usr' may look strange, but you should never | ||
| 111 | configure EGLIBC with a prefix other than '/usr': in various places, | ||
| 112 | @@ -181,6 +186,11 @@ | ||
| 113 | The '--with-headers' option tells EGLIBC where the Linux headers have | ||
| 114 | been installed. | ||
| 115 | |||
| 116 | +The '--enable-add-ons=nptl,libidn,../ports' option tells EGLIBC to look | ||
| 117 | +for the listed glibc add-ons. Most notably the ports add-on (located | ||
| 118 | +just above the libc sources in the EGLIBC svn tree) is required to | ||
| 119 | +support ARM targets. | ||
| 120 | + | ||
| 121 | We can now use the 'install-headers' makefile target to install the | ||
| 122 | headers: | ||
| 123 | |||
| 124 | @@ -223,6 +233,7 @@ | ||
| 125 | > --prefix=$tools \ | ||
| 126 | > --with-sysroot=$sysroot \ | ||
| 127 | > --disable-libssp --disable-libgomp --disable-libmudflap \ | ||
| 128 | + > --disable-libffi --disable-libquadmath \ | ||
| 129 | > --enable-languages=c | ||
| 130 | $ PATH=$tools/bin:$PATH make | ||
| 131 | $ PATH=$tools/bin:$PATH make install | ||
| 132 | @@ -240,13 +251,14 @@ | ||
| 133 | > CXX=$tools/bin/$target-g++ \ | ||
| 134 | > AR=$tools/bin/$target-ar \ | ||
| 135 | > RANLIB=$tools/bin/$target-ranlib \ | ||
| 136 | - > $src/libc/configure \ | ||
| 137 | + > $src/eglibc/libc/configure \ | ||
| 138 | > --prefix=/usr \ | ||
| 139 | > --with-headers=$sysroot/usr/include \ | ||
| 140 | > --with-kconfig=$obj/linux/scripts/kconfig \ | ||
| 141 | > --build=$build \ | ||
| 142 | > --host=$target \ | ||
| 143 | - > --disable-profile --without-gd --without-cvs --enable-add-ons | ||
| 144 | + > --disable-profile --without-gd --without-cvs \ | ||
| 145 | + > --enable-add-ons=nptl,libidn,../ports | ||
| 146 | |||
| 147 | Note the additional '--with-kconfig' option. This tells EGLIBC where to | ||
| 148 | find the host config tools used by the kernel 'make config' and 'make | ||
| 149 | @@ -337,15 +349,15 @@ | ||
| 150 | ELF Header: | ||
| 151 | ... | ||
| 152 | Type: EXEC (Executable file) | ||
| 153 | - Machine: PowerPC | ||
| 154 | + Machine: ARM | ||
| 155 | |||
| 156 | ... | ||
| 157 | Program Headers: | ||
| 158 | Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align | ||
| 159 | PHDR 0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4 | ||
| 160 | - INTERP 0x000134 0x10000134 0x10000134 0x0000d 0x0000d R 0x1 | ||
| 161 | - [Requesting program interpreter: /lib/ld.so.1] | ||
| 162 | - LOAD 0x000000 0x10000000 0x10000000 0x008f0 0x008f0 R E 0x10000 | ||
| 163 | + INTERP 0x000134 0x00008134 0x00008134 0x00013 0x00013 R 0x1 | ||
| 164 | + [Requesting program interpreter: /lib/ld-linux.so.3] | ||
| 165 | + LOAD 0x000000 0x00008000 0x00008000 0x0042c 0x0042c R E 0x8000 | ||
| 166 | ... | ||
| 167 | |||
| 168 | Looking at the dynamic section of the installed 'libgcc_s.so', we see | ||
| 169 | @@ -357,7 +369,6 @@ | ||
| 170 | Dynamic section at offset 0x1083c contains 24 entries: | ||
| 171 | Tag Type Name/Value | ||
| 172 | 0x00000001 (NEEDED) Shared library: [libc.so.6] | ||
| 173 | - 0x00000001 (NEEDED) Shared library: [ld.so.1] | ||
| 174 | 0x0000000e (SONAME) Library soname: [libgcc_s.so.1] | ||
| 175 | ... | ||
| 176 | |||
