1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
10 maintainer = Michael Tremer <michael.tremer@ipfire.org>
12 url = http://sources.redhat.com/glibc/
13 license = GPLv2+ LGPLv2+
14 summary = The GNU libc libraries.
17 The glibc package contains standard libraries which are used by
18 multiple programs on the system. In order to save disk space and
19 memory, as well as to make upgrading easier, common system code is
20 kept in one place and shared between programs. This particular package
21 contains the most important sets of shared libraries: the standard C
22 library and the standard math library. Without these two libraries, a
23 Linux system will not function.
26 source_dl = http://ftp.gnu.org/gnu/glibc/
27 sources = %{thisapp}.tar.xz
30 # Optimize glibc for kernel
31 OPTIMIZED_KERNEL = 2.6.32
38 kernel-headers >= %{OPTIMIZED_KERNEL}
44 # Build glibc with custom cflags
45 GLIBC_FLAGS = -O3 -g -fasynchronous-unwind-tables -DNDEBUG -fPIC -DPIC
47 if "%{DISTRO_ARCH}" == "i686"
48 GLIBC_FLAGS += -march=i686 -mtune=generic
51 if "%{DISTRO_ARCH}" == "x86_64"
52 GLIBC_FLAGS += -mtune=generic
55 export CFLAGS = %{GLIBC_FLAGS}
56 export CXXFLAGS = %{GLIBC_FLAGS}
58 export QUALITY_AGENT_RPATH_ALLOW_ORIGIN=yes
61 # In the vi_VN.TCVN locale, bash enters an infinite loop at startup. It is
62 # unknown whether this is a bash bug or a Glibc problem. Disable
63 # installation of this locale in order to avoid the problem.
64 sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED
66 # The ldd shell script contains Bash-specific syntax. Change its default
67 # program interpreter to /bin/bash in case another /bin/sh is installed.
68 sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in
70 # We don't install pt_chown(1) on the final system, so why install it to
72 sed -e "/^install.*pt_chown/d" -i login/Makefile
74 # Build nscd with -fstack-protector-all, instead of -fstack-protector:
75 sed -e "s/fstack-protector/&-all/" -i nscd/Makefile
77 cat %{DIR_SOURCE}/glibc-stack_chk_fail.c > debug/stack_chk_fail.c
81 -e "s/-Wl,--hash-style=both/-Wl,--hash-style=gnu -Wl,-O1/"
83 # http://sourceware.org/ml/libc-ports/2011-09/msg00018.html
84 sed -e "s/PIC/SHARED/g" -i ports/sysdeps/arm/{set,__long}jmp.S
88 --build=%{DISTRO_BUILDTARGET} \
90 --libexecdir=%{libdir}/glibc \
93 --enable-kernel=%{OPTIMIZED_KERNEL} \
97 --enable-obsolete-rpc \
98 --with-bugurl=http://bugtracker.ipfire.org
100 if "%{DISTRO_ARCH}" == "armv5tel"
101 # Disable hardware FP for ARM.
102 configure_options += \
107 mkdir -p %{DIR_SRC}/glibc-build
108 cd %{DIR_SRC}/glibc-build
110 CFLAGS="${CFLAGS} -fno-asynchronous-unwind-tables" \
111 ../%{thisapp}/configure \
115 -e "s/^build-pic-default=.*/build-pic-default=yes/"
117 # Our GCC is already passing -fPIC, and that's all we want for the libraries.
118 # LDFLAGS.so is appended to so we don't build shared libraries with
119 # DT_TEXTREL (and to tell us if something goes wrong). For now we only build
120 # the libraries, not the programs:
121 echo "build-programs=no" >> configparms
123 make PARALLELMFLAGS=%{PARALLELISMFLAGS} \
124 CFLAGS="%{CFLAGS} -fno-stack-protector -U_FORTIFY_SOURCE" \
125 CXXFLAGS="%{CXXFLAGS} -fno-stack-protector -U_FORTIFY_SOURCE"
127 # Then build the programs with hardening, so everything possible in
129 echo "# Nothing in here :D" > configparms
130 make PARALLELMFLAGS=%{PARALLELISMFLAGS} \
131 CFLAGS="%{CFLAGS}" CXXFLAGS="%{CXXFLAGS}"
135 cd %{DIR_SRC}/glibc-build
136 make install install_root=%{BUILDROOT}
139 mkdir -pv %{BUILDROOT}/usr/lib/locale
140 # This would install all locales that are supported
141 make localedata/install-locales install_root=%{BUILDROOT}
144 cp -vf %{DIR_SOURCE}/{ld.so.conf,nsswitch.conf} %{BUILDROOT}/etc
145 mkdir -pv %{BUILDROOT}/etc/{default,ld.so.conf.d}
146 install -p -m644 %{DIR_APP}/nis/nss %{BUILDROOT}/etc/default/nss
148 if [ "%{DISTRO_ARCH}" = "armv7hl" ]; then
149 ln -svf ld-linux-armhf.so.3 %{BUILDROOT}/lib/ld-linux.so.3
152 # Remove unused binaries
153 rm -vf %{BUILDROOT}/sbin/sln \
154 %{BUILDROOT}/usr/bin/rpcinfo
156 # Don't distribute linker cache
157 rm -vf %{BUILDROOT}/etc/ld.so.cache
159 # Include /usr/lib/gconv/gconv-modules.cache
160 > %{BUILDROOT}%{libdir}/gconv/gconv-modules.cache
161 chmod 644 %{BUILDROOT}%{libdir}/gconv/gconv-modules.cache
163 strip -g %{BUILDROOT}%{libdir}/*.o
165 # Move some libs to correct place
166 mv -v %{BUILDROOT}/%{lib}/lib{memusage,pcprofile}.so %{BUILDROOT}%{libdir}
168 # Fix library permissions.
169 chmod 755 %{BUILDROOT}%{libdir}/lib*.so*
171 # rquota.x and rquota.h are now provided by quota
172 rm -vf %{BUILDROOT}%{includedir}/rpcsvc/rquota.[hx]
176 %{libdir}/libc_nonshared.a
177 %{libdir}/libpthread_nonshared.a
183 requires = glibc-common = %{thisver}
185 if "%{DISTRO_ARCH}" == "armv7hl"
186 provides += ld-linux.so.3
187 provides += ld-linux.so.3(GLIBC_2.4)
188 provides += ld-linux.so.3(GLIBC_PRIVATE)
193 # XXX description and summary are missing
210 summary = Object files for development using standard C libraries.
212 The glibc-devel package contains the object files necessary
213 for developing programs which use the standard C libraries (which are
214 used by nearly all programs). If you are developing programs which
215 will use the standard C libraries, your system needs to have these
216 standard object files available in order to create the
219 Install glibc-devel if you are going to develop programs which will
220 use the standard C libraries.
222 group = Development/Libraries
226 glibc-headers = %{thisver}
236 package glibc-headers
238 The glibc-headers package contains the header files necessary
239 for developing programs which use the standard C libraries (which are
240 used by nearly all programs). If you are developing programs which
241 will use the standard C libraries, your system needs to have these
242 standard header files available in order to create the
245 Install glibc-headers if you are going to develop programs which will
246 use the standard C libraries.
251 kernel-headers >= %{OPTIMIZED_KERNEL}
256 !/usr/include/linuxthreads
257 !/usr/include/gnu/stubs-[32164]*.h
262 summary = A Name Service Caching Daemon (nscd).
264 Nscd caches name service lookups and can dramatically improve
265 performance with NIS+, and may help with DNS as well.
267 group = System/Daemons
274 package %{name}-utils
275 summary = Development utilities from GNU C library.
277 The glibc-utils package contains memusage, a memory usage profiler,
278 mtrace, a memory leak tracer and xtrace, a function call tracer
279 which can be helpful during program debugging.
281 group = Development/Tools
285 /usr/bin/memusagestat
287 /usr/bin/pcprofiledump
289 %{libdir}/libmemusage.so
290 %{libdir}/libpcprofile.so
294 package %{name}-debuginfo