summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/eglibc/eglibc_2.13.bb
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2012-06-21 16:06:32 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-06-25 16:35:53 +0100
commit92e20d13c819c0c1933706b22ffc3478ab76e7d0 (patch)
tree00423068aaece5dcd19b500e44a5203605eb626a /meta/recipes-core/eglibc/eglibc_2.13.bb
parent2ef14dff79230a67258995c27b49aaab1aae92ca (diff)
downloadpoky-92e20d13c819c0c1933706b22ffc3478ab76e7d0.tar.gz
eglibc-2.13: Retire into toolchain layer
If anyone wants it add toolchain-layer from meta-openembedded repo to your setup (From OE-Core rev: 505d82df47628b72e2af6f73e7c33fbb9812fdd1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/eglibc/eglibc_2.13.bb')
-rw-r--r--meta/recipes-core/eglibc/eglibc_2.13.bb218
1 files changed, 0 insertions, 218 deletions
diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb
deleted file mode 100644
index 690f99d086..0000000000
--- a/meta/recipes-core/eglibc/eglibc_2.13.bb
+++ /dev/null
@@ -1,218 +0,0 @@
1require eglibc.inc
2
3SRCREV = "15508"
4
5DEPENDS += "gperf-native"
6PR = "r28"
7PR_append = "+svnr${SRCPV}"
8
9EGLIBC_BRANCH="eglibc-2_13"
10SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
11 file://eglibc-svn-arm-lowlevellock-include-tls.patch \
12 file://IO-acquire-lock-fix.patch \
13 file://mips-rld-map-check.patch \
14 file://stack-protector-test.patch \
15 file://armv4-eabi-compile-fix.patch \
16 file://etc/ld.so.conf \
17 file://generate-supported.mk \
18 file://ppc-sqrt.patch \
19 file://multilib_readlib.patch \
20 file://use-sysroot-cxx-headers.patch \
21 "
22LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
23 file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
24 file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
25 file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff "
26
27SRC_URI_append_virtclass-nativesdk = " file://ld-search-order.patch"
28S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
29B = "${WORKDIR}/build-${TARGET_SYS}"
30
31PACKAGES_DYNAMIC = "libc6*"
32RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
33PROVIDES_${PN}-dbg = "glibc-dbg"
34
35# the -isystem in bitbake.conf screws up glibc do_stage
36BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
37TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
38
39GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1"
40
41FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc-${PV}', '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
42
43#
44# For now, we will skip building of a gcc package if it is a uclibc one
45# and our build is not a uclibc one, and we skip a glibc one if our build
46# is a uclibc build.
47#
48# See the note in gcc/gcc_3.4.0.oe
49#
50
51python __anonymous () {
52 import bb, re
53 uc_os = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None)
54 if uc_os:
55 raise bb.parse.SkipPackage("incompatible with target %s" %
56 d.getVar('TARGET_OS', True))
57}
58
59export libc_cv_slibdir = "${base_libdir}"
60
61
62EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
63 --without-cvs --disable-profile --disable-debug --without-gd \
64 --enable-clocale=gnu \
65 --enable-add-ons=${GLIBC_ADDONS},ports \
66 --with-headers=${STAGING_INCDIR} \
67 --without-selinux \
68 ${GLIBC_EXTRA_OECONF}"
69
70EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
71
72do_unpack_append() {
73 bb.build.exec_func('do_move_ports', d)
74}
75
76do_move_ports() {
77 if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
78 rm -rf ${S}/ports
79 mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${S}/
80 fi
81}
82
83do_patch_append() {
84 bb.build.exec_func('do_fix_ia_headers', d)
85 bb.build.exec_func('do_fix_readlib_c', d)
86}
87
88# We need to ensure that all of the i386 and x86_64 headers are identical
89# to support the multilib case. We do this by copying headers from x86_64
90# to i386 directories. Normally when hand building eglibc or a combined
91# system you would build 32-bit, and then overwrite any files with the x86_64
92# versions.
93#
94# Each time eglibc is updated, this will need to be re-evaluated. In order
95# to do this, disable this function. Build eglibc for a 32-bit and a 64-bit
96# IA32 target. Compare the contents of the include files -- comments specific
97# to the x86_64 version compared to the 32-bit one.
98#
99# For eglibc 2.13, each conflict noted below:
100# bits/a.out.h - Add support for __WORDSIZE = 64
101# bits/byteswap.h - Copyright date mismatch, add support for __WORDSIZE = 64
102# bits/endian.h - Comment mismatch
103# bits/environment.h - add support for __WORDSIZE = 64
104# bits/fcntl.h - Comment/Copyright date mismatch, add support for __WORDSIZE = 64
105# bits/fenv.h - Copyright date mismatch, add support for __WORDSIZE = 64
106# bits/huge_vall.h - Comment/Copyright date mismatch, remove support for older gcc
107# bits/link.h - Function name difference, add x86_64 definitions
108# bits/mathdef.h - Copyright date mismatch, add support for __WORDSIZE = 64
109# bits/mathinline.h - Copyright date mismatch, contributed by mismatch, remove support for older gcc/assembly optimization, add support for __WORDSIZE = 64
110# bits/mman.h - Header/Copyright date mismatch, add MAP_32BIT definition
111# bits/msq.h - Copyright date mismatch, add __WORDSIZE = 32 definitions
112# bits/pthread_type.h -- Contributed by added, add support for __WORDSIZE = 64
113# bits/select.h - Copyright date mismatch, add support for __WORDSIZE = 64
114# bits/semaphore.h - Copyright date mismatch, add support for __WORDSIZE = 64
115# bits/sem.h - Copyright date mismatch
116# bits/setjmp.h - Copyrgiht date mismatch, add support for __WORDSIZE = 64
117# bits/shm.h - Copyright date mismatch, add support for __WORDSIZE = 32
118# bits/sigcontext.h - Copyright date mismatch, license wording mismatch, add support for __WORDSIZE = 32
119# bits/stat.h - Copyright date mismatch, add support for __WORDSIZE = 32 and __WORDSIZE = 64
120# bits/string.h - Header/Copyright date mismatch, remove assembly optimizations
121# bits/syscall.h - different order, some different syscalls listed
122# bits/wchar.h - Change the way the definitions are done
123# bits/wordsize.h - Different header, remove license notice, add __x86_64__ support
124# bits/xtitypes.h - Header difference, different typedef format
125# bits/fpu_control.h - header difference, revised comments, updated assembly macros
126# sys/debugreg.h - Copyright date mismatch, new definition and added __WORDSIZE=64 support
127# sys/epoll.h - Copyright date mismatch, slightly different definitions
128# sys/io.h - Copyright date mismatch, slightly different assembly formats
129# sys/perm.h - Copyright date mismatch
130# sys/procfs.h - Copyright date mismatch, support for __WORDSIZE = 32
131# sys/reg.h - Copyright date mismatch, support for __WORDSIZE = 64
132# sys/ucontext.h - Copyright date mismatch, support for __WORDSIZE = 64
133# sys/user.h - Copyright date mismatch, support for __WORDSIZE = 64
134#
135# we rm something to return to the default version
136#
137do_fix_ia_headers() {
138 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/a.out.h ${S}/sysdeps/unix/sysv/linux/i386/bits/a.out.h
139 cp ${S}/sysdeps/x86_64/bits/byteswap.h ${S}/sysdeps/i386/bits/byteswap.h
140 cp ${S}/sysdeps/x86_64/bits/endian.h ${S}/sysdeps/i386/bits/endian.h
141 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/environments.h ${S}/sysdeps/unix/sysv/linux/i386/bits/environments.h
142 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h ${S}/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
143 cp ${S}/sysdeps/x86_64/fpu/bits/fenv.h ${S}/sysdeps/i386/fpu/bits/fenv.h
144 rm -f ${S}/sysdeps/i386/bits/huge_vall.h
145 cp ${S}/sysdeps/x86_64/bits/link.h ${S}/sysdeps/i386/bits/link.h
146 cp ${S}/sysdeps/x86_64/bits/mathdef.h ${S}/sysdeps/i386/bits/mathdef.h
147 cp ${S}/sysdeps/x86_64/fpu/bits/mathinline.h ${S}/sysdeps/i386/fpu/bits/mathinline.h
148 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/mman.h ${S}/sysdeps/unix/sysv/linux/i386/bits/mman.h
149 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/msq.h ${S}/sysdeps/unix/sysv/linux/i386/bits/msq.h
150 cp ${S}/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h ${S}/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
151 cp ${S}/sysdeps/x86_64/bits/select.h ${S}/sysdeps/i386/bits/select.h
152 cp ${S}/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h ${S}/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h
153 rm -f ${S}/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
154 cp ${S}/sysdeps/x86_64/bits/setjmp.h ${S}/sysdeps/i386/bits/setjmp.h
155 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/shm.h ${S}/sysdeps/unix/sysv/linux/i386/bits/shm.h
156 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h ${S}/sysdeps/unix/sysv/linux/i386/bits/sigcontext.h
157 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/stat.h ${S}/sysdeps/unix/sysv/linux/i386/bits/stat.h
158 rm -f ${S}/sysdeps/i386/i486/bits/string.h ; cp ${S}/sysdeps/x86_64/bits/string.h ${S}/sysdeps/i386/bits/string.h
159 # Skip syscall.h, see do_install
160 rm -f ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h
161 cp ${S}/sysdeps/x86_64/bits/wordsize.h ${S}/sysdeps/i386/bits/wordsize.h
162 cp ${S}/sysdeps/x86_64/bits/xtitypes.h ${S}/sysdeps/i386/bits/xtitypes.h
163 # i386 version is correct, x86_64 is incorrect for fpu_control.h
164 cp ${S}/sysdeps/i386/fpu_control.h ${S}/sysdeps/x86_64/fpu_control.h
165 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h ${S}/sysdeps/unix/sysv/linux/i386/sys/debugreg.h
166 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/epoll.h ${S}/sysdeps/unix/sysv/linux/i386/sys/epoll.h
167 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/io.h ${S}/sysdeps/unix/sysv/linux/i386/sys/io.h
168 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/perm.h ${S}/sysdeps/unix/sysv/linux/i386/sys/perm.h
169 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h ${S}/sysdeps/unix/sysv/linux/i386/sys/procfs.h
170 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/reg.h ${S}/sysdeps/unix/sysv/linux/i386/sys/reg.h
171 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h ${S}/sysdeps/unix/sysv/linux/i386/sys/ucontext.h
172 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/user.h ${S}/sysdeps/unix/sysv/linux/i386/sys/user.h
173}
174
175do_fix_readlib_c () {
176 sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c
177}
178
179do_configure () {
180# override this function to avoid the autoconf/automake/aclocal/autoheader
181# calls for now
182# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
183# version check and doesn't really help with anything
184 if [ -z "`which rpcgen`" ]; then
185 echo "rpcgen not found. Install glibc-devel."
186 exit 1
187 fi
188 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
189 find ${S} -name "configure" | xargs touch
190 CPPFLAGS="" oe_runconf
191}
192
193rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
194 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
195 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
196
197do_compile () {
198 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
199 unset LDFLAGS
200 base_do_compile
201 (
202 cd ${S}/sunrpc/rpcsvc
203 for r in ${rpcsvc}; do
204 h=`echo $r|sed -e's,\.x$,.h,'`
205 rpcgen -h $r -o $h || bbwarn "unable to generate header for $r"
206 done
207 )
208 echo "Adjust ldd script"
209 if [ -n "${RTLDLIST}" ]
210 then
211 sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\)"\(.*\)"$#\1\2#'
212 sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\)\(.*\)$#\1"${RTLDLIST} \2"#'
213 fi
214}
215
216require eglibc-package.inc
217
218BBCLASSEXTEND = "nativesdk"