]> git.ipfire.org Git - ipfire-3.x.git/blob - glibc/glibc.nm
glibc: Update to 2.17.
[ipfire-3.x.git] / glibc / glibc.nm
1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
5
6 name = glibc
7 version = 2.17
8 release = 1
9
10 maintainer = Michael Tremer <michael.tremer@ipfire.org>
11 groups = System/Base
12 url = http://sources.redhat.com/glibc/
13 license = GPLv2+ LGPLv2+
14 summary = The GNU libc libraries.
15
16 description
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.
24 end
25
26 source_dl = http://ftp.gnu.org/gnu/glibc/
27 sources = %{thisapp}.tar.xz
28
29 build
30 # Optimize glibc for kernel
31 OPTIMIZED_KERNEL = 2.6.32
32
33 requires
34 audit-devel
35 autoconf
36 automake
37 gettext
38 kernel-headers >= %{OPTIMIZED_KERNEL}
39 libcap-devel
40 libselinux-devel
41 nss-devel
42 texinfo
43 end
44
45 # Build glibc with custom cflags
46 GLIBC_FLAGS = -O3 -g -fasynchronous-unwind-tables -DNDEBUG -fPIC -DPIC
47
48 if "%{DISTRO_ARCH}" == "i686"
49 GLIBC_FLAGS += -march=i686 -mtune=generic
50 end
51
52 if "%{DISTRO_ARCH}" == "x86_64"
53 GLIBC_FLAGS += -mtune=generic
54 end
55
56 export CFLAGS = %{GLIBC_FLAGS}
57 export CXXFLAGS = %{GLIBC_FLAGS}
58
59 export QUALITY_AGENT_RPATH_ALLOW_ORIGIN=yes
60
61 prepare_cmds
62 # In the vi_VN.TCVN locale, bash enters an infinite loop at startup. It is
63 # unknown whether this is a bash bug or a Glibc problem. Disable
64 # installation of this locale in order to avoid the problem.
65 sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED
66
67 # The ldd shell script contains Bash-specific syntax. Change its default
68 # program interpreter to /bin/bash in case another /bin/sh is installed.
69 sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in
70
71 # We don't install pt_chown(1) on the final system, so why install it to
72 # $(TOOLS_DIR):
73 sed -e "/^install.*pt_chown/d" -i login/Makefile
74
75 # Build nscd with -fstack-protector-all, instead of -fstack-protector:
76 sed -e "s/fstack-protector/&-all/" -i nscd/Makefile
77
78 cat %{DIR_SOURCE}/glibc-stack_chk_fail.c > debug/stack_chk_fail.c
79
80 # Use gnu hash style
81 sed -i Makeconfig \
82 -e "s/-Wl,--hash-style=both/-Wl,--hash-style=gnu -Wl,-O1/"
83
84 # http://sourceware.org/ml/libc-ports/2011-09/msg00018.html
85 sed -e "s/PIC/SHARED/g" -i ports/sysdeps/arm/{set,__long}jmp.S
86 end
87
88 configure_options = \
89 --build=%{DISTRO_BUILDTARGET} \
90 --prefix=/usr \
91 --libexecdir=%{libdir}/glibc \
92 --disable-profile \
93 --enable-add-ons \
94 --enable-kernel=%{OPTIMIZED_KERNEL} \
95 --with-selinux \
96 --disable-werror \
97 --enable-bind-now \
98 --enable-nss-crypt \
99 --enable-obsolete-rpc \
100 --with-bugurl=http://bugtracker.ipfire.org
101
102 if "%{DISTRO_ARCH}" == "armv5tel"
103 # Disable hardware FP for ARM.
104 configure_options += \
105 --without-fp
106 end
107
108 build
109 mkdir -p %{DIR_SRC}/glibc-build
110 cd %{DIR_SRC}/glibc-build
111
112 CFLAGS="${CFLAGS} -fno-asynchronous-unwind-tables" \
113 ../%{thisapp}/configure \
114 %{configure_options}
115
116 sed -i config.make \
117 -e "s/^build-pic-default=.*/build-pic-default=yes/"
118
119 # Our GCC is already passing -fPIC, and that's all we want for the libraries.
120 # LDFLAGS.so is appended to so we don't build shared libraries with
121 # DT_TEXTREL (and to tell us if something goes wrong). For now we only build
122 # the libraries, not the programs:
123 echo "build-programs=no" >> configparms
124
125 make PARALLELMFLAGS=%{PARALLELISMFLAGS} \
126 CFLAGS="%{CFLAGS} -fno-stack-protector -U_FORTIFY_SOURCE" \
127 CXXFLAGS="%{CXXFLAGS} -fno-stack-protector -U_FORTIFY_SOURCE"
128
129 # Then build the programs with hardening, so everything possible in
130 # is hardened:
131 echo "# Nothing in here :D" > configparms
132 make PARALLELMFLAGS=%{PARALLELISMFLAGS} \
133 CFLAGS="%{CFLAGS}" CXXFLAGS="%{CXXFLAGS}"
134 end
135
136 install
137 cd %{DIR_SRC}/glibc-build
138 make install install_root=%{BUILDROOT}
139
140 # Locales
141 mkdir -pv %{BUILDROOT}/usr/lib/locale
142 # This would install all locales that are supported
143 make localedata/install-locales install_root=%{BUILDROOT}
144
145 # Configuration
146 cp -vf %{DIR_SOURCE}/{ld.so.conf,nsswitch.conf} %{BUILDROOT}/etc
147 mkdir -pv %{BUILDROOT}/etc/{default,ld.so.conf.d}
148 install -p -m644 %{DIR_APP}/nis/nss %{BUILDROOT}/etc/default/nss
149
150 if [ "%{DISTRO_ARCH}" = "armv7hl" ]; then
151 ln -svf ld-linux-armhf.so.3 %{BUILDROOT}/lib/ld-linux.so.3
152 fi
153
154 # Remove unused binaries
155 rm -vf %{BUILDROOT}/sbin/sln \
156 %{BUILDROOT}/usr/bin/rpcinfo
157
158 # Don't distribute linker cache
159 rm -vf %{BUILDROOT}/etc/ld.so.cache
160
161 # Include /usr/lib/gconv/gconv-modules.cache
162 > %{BUILDROOT}%{libdir}/gconv/gconv-modules.cache
163 chmod 644 %{BUILDROOT}%{libdir}/gconv/gconv-modules.cache
164
165 strip -g %{BUILDROOT}%{libdir}/*.o
166
167 # Move some libs to correct place
168 mv -v %{BUILDROOT}/%{lib}/lib{memusage,pcprofile}.so %{BUILDROOT}%{libdir}
169
170 # Fix library permissions.
171 chmod 755 %{BUILDROOT}%{libdir}/lib*.so*
172 end
173
174 keep_libraries
175 %{libdir}/libc_nonshared.a
176 %{libdir}/libpthread_nonshared.a
177 end
178 end
179
180 packages
181 package glibc
182 requires = glibc-common = %{thisver}
183
184 if "%{DISTRO_ARCH}" == "armv7hl"
185 provides += ld-linux.so.3
186 provides += ld-linux.so.3(GLIBC_2.4)
187 provides += ld-linux.so.3(GLIBC_PRIVATE)
188 end
189 end
190
191 package glibc-common
192 # XXX description and summary are missing
193
194 requires
195 glibc = %{thisver}
196 tzdata
197 end
198
199 files
200 /usr/bin
201 /usr/sbin
202 /usr/share
203 /usr/lib/locale
204 !/usr/share/zoneinfo
205 end
206 end
207
208 package glibc-devel
209 summary = Object files for development using standard C libraries.
210 description
211 The glibc-devel package contains the object files necessary
212 for developing programs which use the standard C libraries (which are
213 used by nearly all programs). If you are developing programs which
214 will use the standard C libraries, your system needs to have these
215 standard object files available in order to create the
216 executables.
217
218 Install glibc-devel if you are going to develop programs which will
219 use the standard C libraries.
220 end
221 group = Development/Libraries
222
223 requires
224 glibc = %{thisver}
225 glibc-headers = %{thisver}
226 end
227
228 files
229 %{includedir}
230 %{libdir}/*.a
231 %{libdir}/*.o
232 end
233 end
234
235 package glibc-headers
236 description
237 The glibc-headers package contains the header files necessary
238 for developing programs which use the standard C libraries (which are
239 used by nearly all programs). If you are developing programs which
240 will use the standard C libraries, your system needs to have these
241 standard header files available in order to create the
242 executables.
243
244 Install glibc-headers if you are going to develop programs which will
245 use the standard C libraries.
246 end
247
248 requires
249 glibc = %{thisver}
250 kernel-headers >= %{OPTIMIZED_KERNEL}
251 end
252
253 files
254 /usr/include
255 !/usr/include/linuxthreads
256 !/usr/include/gnu/stubs-[32164]*.h
257 end
258 end
259
260 package nscd
261 summary = A Name Service Caching Daemon (nscd).
262 description
263 Nscd caches name service lookups and can dramatically improve
264 performance with NIS+, and may help with DNS as well.
265 end
266 group = System/Daemons
267
268 files
269 /usr/sbin/nscd
270 end
271 end
272
273 package %{name}-utils
274 summary = Development utilities from GNU C library.
275 description
276 The glibc-utils package contains memusage, a memory usage profiler,
277 mtrace, a memory leak tracer and xtrace, a function call tracer
278 which can be helpful during program debugging.
279 end
280 group = Development/Tools
281
282 files
283 /usr/bin/memusage
284 /usr/bin/memusagestat
285 /usr/bin/mtrace
286 /usr/bin/pcprofiledump
287 /usr/bin/xtrace
288 %{libdir}/libmemusage.so
289 %{libdir}/libpcprofile.so
290 end
291 end
292
293 package %{name}-debuginfo
294 template DEBUGINFO
295 end
296 end