3 http://ftp.gnu.org/gnu/glibc/glibc-2.3.6.tar.bz2
4 glibc-linuxthreads-2.3.6-url := \
5 http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.6.tar.bz2
6 glibc-libidn-2.3.6-url := \
7 http://ftp.gnu.org/gnu/glibc/glibc-libidn-2.3.6.tar.bz2
10 http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2
11 glibc-linuxthreads-2.5-url := \
12 http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.bz2
13 glibc-libidn-2.5-url := \
14 http://ftp.gnu.org/gnu/glibc/glibc-libidn-2.5.tar.bz2
18 --disable-sanity-checks \
19 --with-headers=$(STAGEDIR)/include \
21 --prefix= --sysconfdir=/etc/config
23 # CONFOPTS += --enable-kernel=2.4.22
25 # do we want a non-debuggable lib or not, if so remove the C flag and
26 # enable it in glibc, it knows best where to add it.
27 ifneq ($(findstring -fomit-frame-pointer,$(CFLAGS)),)
28 CONFOPTS += --enable-omitfp
29 CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS))
32 CFLAGS := $(subst -fno-common,,$(CFLAGS))
33 CFLAGS := $(subst -fno-builtin,,$(CFLAGS)) -fgnu89-inline
34 repl = -Wl,--fatal-warnings
35 LDFLAGS := $(subst $(repl),,$(LDFLAGS))
36 LDFLAGS := $(subst -nostdlib,,$(LDFLAGS))
37 LDFLAGS := $(subst -nostartfiles,,$(LDFLAGS))
43 ifdef CONFIG_GLIBC_2_3_6
44 GLIBC_ALL = glibc-2.3.6-all
46 ifdef CONFIG_GLIBC_2_5
47 GLIBC_ALL = glibc-2.5-all
55 @echo "Downloading $* ..."
56 @[ -d "$$HOME/.downloads" ] || mkdir ~/.downloads
57 @if [ ! -f "$$HOME/.downloads/$@" ]; then \
58 (cd ~/.downloads; $(WGET) "$($*-url)"); \
60 @if [ -f "$$HOME/.downloads/$@" ]; then \
61 ln -fs "$$HOME/.downloads/$@" $@; \
63 if [ ! -f "$@" ]; then \
64 echo "Cannot find download for $@" >&2 ; \
68 glibc-2.5-all: glibc-2.5-configured
71 env LANGUAGE=C LC_ALL=C $(MAKE) -C glibc-2.5 -f Makefile -r srcdir=`pwd` objdir=`pwd`/build install_root=`pwd`/install install
72 : fix groups in linker scripts
73 @find install/. -type f -name *.so* | while read t; do \
74 if file "$$t" | grep -i ascii > /dev/null; then \
75 echo "Fixing $$t ..."; \
76 sed 's?\([ (]\)\(/lib/[^ )]*\)?\1'"`pwd`/install"'\2?g' < "$$t" > "$$t.fixup"; \
77 cp "$$t.fixup" "$$t"; \
82 glibc-2.5-extracted: Makefile glibc-2.5.tar.bz2 glibc-linuxthreads-2.5.tar.bz2 glibc-libidn-2.5.tar.bz2
83 rm -rf glibc-2.5 glibc-libidn-2.5 install build
84 bunzip2 < glibc-2.5.tar.bz2 | tar xf -
85 bunzip2 < glibc-linuxthreads-2.5.tar.bz2 | (cd glibc-2.5; tar xf -)
86 bunzip2 < glibc-libidn-2.5.tar.bz2 | tar xf -
87 mv glibc-libidn-2.5 glibc-2.5/libidn
88 rm -rf glibc-2.5/nptl glibc-2.5/nptl_db
89 @for i in glibc-2.5*.patch; do \
90 [ -f $$i ] || continue; \
91 echo "Applying $$i ..."; \
92 (cd glibc-2.5; patch -p1) < $$i; \
96 glibc-2.5-configured: Makefile glibc-2.5-extracted
100 CC="$(subst ucfront-gcc,,$(CC))" \
101 CXX="$(subst ucfront-g++,,$(CXX))" \
103 /bin/bash ../glibc-2.5/configure $(CONFIGURE_OPTS) $(CONFOPTS) \
104 --enable-addons=libidn,linuxthreads; \
107 ln -s libdl.so build/dlfcn/libdl.so.2
110 glibc-2.3.6-all: glibc-2.3.6-configured
113 env no_deps=t LANGUAGE=C LC_ALL=C make -C build -f Makefile install_root=`pwd`/install
114 env no_deps=t LANGUAGE=C LC_ALL=C make -C build -f Makefile install_root=`pwd`/install install
115 : fix groups in linker scripts
116 @find install/. -type f -name *.so* | while read t; do \
117 if file "$$t" | grep -i ascii > /dev/null; then \
118 echo "Fixing $$t ..."; \
119 sed 's?\([ (]\)\(/lib/[^ )]*\)?\1'"`pwd`/install"'\2?g' < "$$t" > "$$t.fixup"; \
120 cp "$$t.fixup" "$$t"; \
125 glibc-2.3.6-extracted: Makefile glibc-2.3.6.tar.bz2 glibc-linuxthreads-2.3.6.tar.bz2 glibc-libidn-2.3.6.tar.bz2
126 rm -rf glibc-2.3.6 install build
127 bunzip2 < glibc-2.3.6.tar.bz2 | tar xf -
128 bunzip2 < glibc-linuxthreads-2.3.6.tar.bz2 | (cd glibc-2.3.6; tar xf -)
129 bunzip2 < glibc-libidn-2.3.6.tar.bz2 | (cd glibc-2.3.6; tar xf -)
130 rm -rf glibc-2.3.6/nptl
131 rm -rf glibc-2.3.6/nptl_db
132 @for i in glibc-2.3.6*.patch; do \
133 [ -f $$i ] || continue; \
134 echo "Applying $$i ..."; \
135 (cd glibc-2.3.6; patch -p1) < $$i; \
139 glibc-2.3.6-configured: Makefile glibc-2.3.6-extracted
143 CC="$(subst ucfront-gcc,,$(CC))" \
144 CXX="$(subst ucfront-g++,,$(CXX))" \
145 /bin/bash ../glibc-2.3.6/configure $(CONFIGURE_OPTS) $(CONFOPTS) \
146 --with-tls --without-__thread \
147 --enable-add-ons=libidn,linuxthreads; \
150 #ln -s libdl.so build/dlfcn/libdl.so.2
155 rm -rf glibc-2.5 glibc-2.5-extracted
156 rm -rf glibc-2.3.6 glibc-2.3.6-extracted
157 rm -f glibc-*.tar.bz2 glibc-*.tar.gz
160 @for i in install; do \
161 echo "Installing `basename $$i -install` ..."; \
162 $(ROMFSINST) -f $$i/bin /bin; \
163 $(ROMFSINST) -f $$i/lib /lib; \
164 $(ROMFSINST) -f $$i/etc /etc; \
165 mv $(ROMFSDIR)/etc/config/* $(ROMFSDIR)/etc/default > /dev/null 2>&1; \
166 $(ROMFSINST) -f $$i/share /share; \
168 rm -f $(ROMFSDIR)/lib/*.a
169 rm -f $(ROMFSDIR)/lib/*.la