Build glibc itself with default offset bits
[platform/upstream/glibc.git] / packaging / glibc.spec
1 #
2 # spec file for package glibc
3 #
4 # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
5 #
6 # All modifications and additions to the file contributed by third parties
7 # remain the property of their copyright owners, unless otherwise agreed
8 # upon. The license for this file, and modifications and additions to the
9 # file, is the same license as for the pristine package itself (unless the
10 # license for the pristine package is not an Open Source License, in which
11 # case the license is the MIT License). An "Open Source License" is a
12 # license that conforms to the Open Source Definition (Version 1.9)
13 # published by the Open Source Initiative.
14
15 %if 0%{?run_tests}
16 %define glibc_run_tests 1
17 %endif
18
19 # This will avoid building some parts of glibc
20 %define asan_arch x86_64 armv7l aarch64
21 %bcond_with    fast_build
22 Name:           glibc
23 Summary:        Standard Shared Libraries (from the GNU C Library)
24 License:        LGPL-2.1+ and LGPL-2.1+-with-GCC-exception and GPL-2.0+
25 Group:          Base/Libraries
26 BuildRequires:  fdupes
27 BuildRequires:  makeinfo
28 BuildRequires:  xz
29 BuildRequires:  gcc-c++
30 BuildRequires:  gettext-tools
31 BuildRequires:  libstdc++-devel
32 BuildRequires:  bison
33 BuildRequires:  python3-base
34 %{?asan:
35 %ifarch %asan_arch
36 #BuildRequires:  python
37 BuildRequires:  glibc-devel-static
38 %endif
39 }
40 #BuildRequires:  pkgconfig(systemd)
41 %define _filter_GLIBC_PRIVATE 1
42 %if %_target_cpu == "i686"
43 # For i686 let's only build what's different from i586, so
44 # no need to build documentation
45 %define build_profile 1
46 %define build_locales 0
47 %define build_html 0
48 %else
49 %if %{with fast_build}
50 %define build_profile 0
51 %define build_locales 0
52 %define build_html 0
53 %else
54 # Default:
55 %define build_profile 1
56 %define build_locales 0
57 %define build_html 1
58 %endif
59 %endif
60
61 %define disable_assert 0
62 %define enable_stackguard_randomization 1
63 %define multiarcharches %{ix86} x86_64
64
65 %ifarch x86_64
66 %define enablekernel 2.6.16
67 %else
68 %define enablekernel 2.6.16
69 %endif
70 Conflicts:      kernel < %{enablekernel}
71 %ifarch armv7l armv7hl
72 # The old runtime linker link gets not provided by rpm find.provides, but it exists
73 Provides:       ld-linux.so.3
74 Provides:       ld-linux.so.3(GLIBC_2.4)
75 %endif
76 Version:        2.30
77 Release:        0
78 %define glibc_major_version %{version}
79 %define git_id 0a8262a1b2
80
81 Url:            http://www.gnu.org/software/libc/libc.html
82 Source:         glibc-%{version}.tar.xz
83 Source5:        nsswitch.conf
84 Source7:        bindresvport.blacklist
85 Source8:        glibc_post_upgrade.c
86 Source9:        glibc.rpmlintrc
87 Source10:       baselibs.conf
88 # For systemd 
89 Source1001:     glibc.manifest
90
91 Requires(pre):  filesystem
92 Provides:       rtld(GNU_HASH)
93
94 %description
95 The GNU C Library provides the most important standard libraries used
96 by nearly all programs: the standard C library, the standard math
97 library, and the POSIX thread library. A system is not functional
98 without these libraries.
99
100 %package info
101 Summary:        Info Files for the GNU C Library
102 License:        GFDL-1.1
103 Group:          Documentation
104 BuildArch:      noarch
105
106 %description info
107 This package contains the documentation for the GNU C library stored as
108 info files. Due to a lack of resources, this documentation is not
109 complete and is partially out of date.
110
111 %package html
112 Summary:        HTML Documentation for the GNU C Library
113 License:        GFDL-1.1
114 Group:          Documentation
115 BuildArch:      noarch
116
117 %description html
118 This package contains the HTML documentation for the GNU C library. Due
119 to a lack of resources, this documentation is not complete and is
120 partially out of date.
121
122 %package i18ndata
123 Summary:        Database Sources for 'locale'
124 License:        GPL-2.0+ and MIT
125 Group:          Base/Libraries
126 BuildArch:      noarch
127
128 %description i18ndata
129 This package contains the data needed to build the locale data files to
130 use the internationalization features of the GNU libc. It is normally
131 not necessary to install this packages, the data files are already
132 created.
133
134 %package locale
135 Summary:        Locale Data for Localized Programs
136 License:        GPL-2.0+ and MIT and LGPL-2.1+
137 Requires(post): /usr/bin/cat
138 Requires:       glibc = %{version}
139 %description locale
140 Locale data for the internationalisation features of the GNU C library.
141
142 %package profile
143 Summary:        Libc Profiling and Debugging Versions
144 License:        LGPL-2.1+ and LGPL-2.1+-with-GCC-exception and GPL-2.0+
145 Group:          Base/Utilities
146 Requires:       glibc = %{version}
147
148 %description profile
149 This package contains special versions of the GNU C library which are
150 necessary for profiling and debugging.
151
152 %package devel
153 Summary:        Include Files and Libraries Mandatory for Development
154 License:        BSD-3-Clause and LGPL-2.1+ and LGPL-2.1+-with-GCC-exception and GPL-2.0+
155 Requires:       glibc = %{version}
156 Requires:       linux-kernel-headers
157
158 %description devel
159 These libraries are needed to develop programs which use the standard C
160 library.
161
162 %package devel-static
163 Summary:        C library static libraries for -static linking
164 License:        BSD-3-Clause and LGPL-2.1+ and LGPL-2.1+-with-GCC-exception and GPL-2.0+
165 Requires:       %{name}-devel = %{version}
166 # Provide Fedora name for package to make packaging easier
167 Provides:       %{name}-static = %version
168
169 %description devel-static
170 The glibc-devel-static package contains the C library static libraries
171 for -static linking.  You don't need these, unless you link statically,
172 which is highly discouraged.
173
174 %package devel-utils
175 Summary:        Development utilities from GNU C library
176 License:        LGPL-2.1+
177 Requires:       glibc = %{version}
178
179 %description devel-utils
180 The glibc-devel-utils package contains various binaries which can be helpful during program
181 debugging.
182
183 If you are unsure if you need this, don't install this package.
184
185 %package extra
186 Summary:        Extra binaries from GNU C Library
187 License:        LGPL-2.1+
188 Requires:       glibc = %{version}
189
190 %description extra
191 The glibc-extra package contains some extra binaries for glibc that
192 are not essential but recommend to use.
193
194 makedb: A program to create a database for nss
195
196 %package obsolete
197 Summary:        Obsolete Shared Libraries from the GNU C Library
198 License:        LGPL-2.0+
199 Requires:       glibc = %{version}
200
201 %description obsolete
202 This package provides some old libraries from the GNU C Library which
203 are no longer supported. Additional it provides a compatibility library
204 for old binaries linked against glibc 2.0.
205
206 Install this package if you need one of this libraries to get old
207 binaries working, but since this libraries are not supported and there
208 is no gurantee that they work for you, you should try to get newer
209 versions of your software.
210
211 %package testresults
212 Summary:       Testsuite results
213 License:       LGPL-2.1+
214 Group:         Development/Languages
215 %description testresults
216 Results from running the glibc testsuites.
217
218 %{?asan:
219 %ifarch %asan_arch
220 %package asan
221 Summary:     glibc with ASan instrumentation
222 License:     LGPL-2.1+ and LGPL-2.1+-with-GCC-exception and GPL-2.0+
223 Requires:    glibc = %{version}
224
225 %description asan
226 This package provides glibc with ASan instrumentation
227
228 %post asan
229 ln -s --force /%{_lib}/libc-2.24-asan.so /%{_lib}/libc.so.6
230
231 %preun asan
232 ln -s --force /%{_lib}/libc-2.24.so /%{_lib}/libc.so.6
233
234 %endif
235 }
236
237 %prep
238 %setup -n glibc-%{version} -q 
239 cp %{SOURCE1001} .
240
241 %build
242 %{?asan:%gcc_unforce_options}
243 if [ -x /bin/uname.bin ]; then
244         /bin/uname.bin -a
245 else
246         uname -a
247 fi
248 uptime || :
249 ulimit -a
250 nice
251 # We do not want configure to figure out the system its building one
252 # to support a common ground and thus set build and host to the
253 # target_cpu.
254 %ifarch %arm
255 %define target %{_target_cpu}-tizen-linux-gnueabi
256 %else
257 %define target %{_target_cpu}-tizen-linux
258 %endif
259 # Don't use as-needed, it breaks glibc assumptions
260 # Before enabling it, run the testsuite and verify that it
261 # passes completely
262 export LD_AS_NEEDED=0
263 # Adjust glibc version.h
264 echo "#define CONFHOST \"%{target}\"" >> version.h
265 echo "#define GITID \"%{git_id}\"" >> version.h
266 #
267 # Default CFLAGS and Compiler
268 #
269 BuildFlags=$(echo %{optflags} | sed -e "s/-Wp,-D_FORTIFY_SOURCE=2//g" | sed -e "s/-ffast-math//" | sed -e "s/atom/i686/g" | sed -e "s/-fexceptions//" | sed -e "s/-fno-omit-frame-pointer//" )
270 BuildFlags="$BuildFlags -O2 -g -U_FORTIFY_SOURCE"
271 BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')"
272 BuildFlags="$(echo $BuildFlags | sed -e 's/-Wa,-mimplicit-it=thumb//g' | sed -e 's/-mthumb//g')"
273 # Turn off all -Wformat enable flags as there are glibc tests that explicitly
274 # append -Wno-format and with enabled Wformat options that produced warnings
275 # that turns into errors. Remove -Wformat=1|2 or -Wformat-..-arg
276 BuildFlags="$(echo $BuildFlags | sed -re 's/-Wformat((=[1-2])|((-\w+)+))?(\s|$)//g')"
277 BuildFlags="$(echo $BuildFlags | sed -re 's/-Wp,-D_FILE_OFFSET_BITS=[0-9]+//g')"
278
279 BuildCC="%__cc"
280 BuildCCplus="%__cxx"
281 add_ons=",libidn"
282
283 BuildFlags="$BuildFlags -g"
284 %if %{disable_assert}
285         BuildFlags="$BuildFlags -DNDEBUG=1"
286 %endif
287 %ifarch %ix86
288         add_ons=$add_ons
289 %endif
290 %ifarch %arm aarch64
291         add_ons=$add_ons
292 %endif
293 %ifarch mipsel
294         # fails to build otherwise - need to recheck and fix
295         %define enable_stackguard_randomization 0
296 %endif
297
298 configure_and_build_glibc() {
299         local dirname="$1"; shift
300         local cflags="$1"; shift
301         local addons="$1"; shift
302         mkdir "cc-$dirname"
303         cd "cc-$dirname"
304         conf_cflags="$cflags -funwind-tables -fPIC"
305         %{?asan: conf_cflags="$conf_cflags -DASAN_INIT_FIRST "}
306
307         profile="--disable-profile"
308 %if %{build_profile}
309         if [ "$dirname" = "base" ] ; then
310             profile="--enable-profile"
311         fi
312 %endif
313         CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \
314         CC="$BuildCC" CXX="$BuildCCplus"  ../configure \
315                 --prefix=%{_prefix} \
316                 --libexecdir=%{_libexecdir} --infodir=%{_infodir} \
317                 --enable-add-ons=$addons \
318                 $profile \
319                 "$@" \
320 %if %{enable_stackguard_randomization}
321                 --enable-stackguard-randomization \
322 %endif
323                 --build=%{target} --host=%{target} \
324 %ifnarch %{multiarcharches}
325                 --disable-multi-arch \
326 %endif
327 %ifarch %{ix86} x86_64 
328                 --disable-mathvec \
329 %endif
330                 --enable-kernel=%{enablekernel} \
331                 --enable-bind-now  --enable-obsolete-rpc \
332                 --disable-nscd \
333                 --disable-experimental-malloc \
334                 libc_cv_pie_default=yes
335         # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure)
336         make %{?_smp_mflags} #CFLAGS="$cflags" BUILD_CFLAGS="$cflags"
337         cd ..
338 }
339
340 configure_flags="--prefix=/usr --without-cvs --without-selinux --enable-stackguard-randomization --enable-obsolete-rpc --disable-mathvec"
341
342 configure_flags="$configure_flags --disable-sanity-checks"
343
344 build_asan() {
345   HERE=%{_builddir}/%{name}-%{version}
346   J=${J:-32}
347   GLIBC=$HERE
348   ASAN_BUILD=$HERE/asan-build
349   unset CXXFLAGS
350   unset CFLAGS
351   unset LDFLAGS
352   #chmod +x $HERE/asan-glibc-gcc-wrapper.py
353   #build static wrapper, because we don't want asan to intercept allocators
354   g++ -o gcc-wrapper gcc-wrapper.cc -O3 -funroll-loops -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-exceptions -static
355
356   rm -rf $ASAN_BUILD
357   mkdir -p $ASAN_BUILD
358   cd $ASAN_BUILD
359 #  CC=$HERE/asan-glibc-gcc-wrapper.py $GLIBC/configure $configure_flags
360   CC=$HERE/gcc-wrapper $GLIBC/configure $configure_flags
361
362   # Quick build - builds only libraries, but does not create symlinks.
363   make -r -j $J -C $GLIBC objdir=`pwd` subdir_lib
364   #make -r -j $J -C $GLIBC objdir=`pwd` install_root=$ASAN_INST install-lib
365   cd $HERE
366 }
367
368         #
369         # Build base glibc
370         #
371         configure_and_build_glibc base "$BuildFlags" "$add_ons"
372
373 %{?asan:
374 %ifarch %{asan_arch}
375 build_asan
376 %endif
377 }
378 #
379 # Build html documentation
380 #
381 %if %{build_html}
382 make -C cc-base html
383 %endif
384
385 #
386 # Build glibc_post_upgrade binary
387 #
388 $BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \
389      -Lcc-base -Bcc-base/csu \
390     '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \
391     '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"'
392
393 #
394 # Build testsuite
395 #
396 # #check sections could be redefined/disabled, so keep this inside #build
397
398 %{?glibc_run_tests:
399   export LD_AS_NEEDED=0
400   (make %{?_smp_mflags} -C cc-base check || true) 2>&1 | tee check.log
401 }
402
403
404 #######################################################################
405 ###
406 ### CHECK
407 ###
408 #######################################################################
409
410 %check
411 # The testsuite will fail if asneeded is used
412 export LD_AS_NEEDED=0
413 # This has to pass on all platforms!
414 # Exceptions:
415 # None!
416 make %{?_smp_mflags} -C cc-base check-abi
417
418 #######################################################################
419 ###
420 ### INSTALL
421 ###
422 #######################################################################
423
424 %install
425 # We don't want to strip the .symtab from our libraries in find-debuginfo.sh,
426 # certainly not from libpthread.so.* because it is used by libthread_db to find
427 # some non-exported symbols in order to detect if threading support
428 # should be enabled.  These symbols are _not_ exported, and we can't easily
429 # export them retroactively without changing the ABI.  So we have to
430 # continue to "export" them via .symtab, instead of .dynsym :-(
431 # But we also want to keep .symtab and .strtab of other libraries since some
432 # debugging tools currently require these sections directly inside the main
433 # files - specifically valgrind and PurifyPlus.
434 export STRIP_KEEP_SYMTAB=*.so*
435
436 # Make sure we will create the gconv-modules.cache
437 mkdir -p %{buildroot}%{_libdir}/gconv
438 touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache
439
440 # Install base glibc
441 make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base
442
443 install_optimized_variant() {
444         local dirname="$1"; shift
445         local subdir="$1"; shift
446         local subdir_up="$1"; shift
447
448 cd "cc-$dirname"
449 destdir=$RPM_BUILD_ROOT/%{_lib}/$subdir
450 mkdir -p $destdir
451 # Don't run a complete make install, we know which libraries
452 # we want
453 for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db
454 do
455   libbase=${lib#*/}
456   libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so)
457   # Only install if different from base lib
458   if cmp -s ${lib}.so ../cc-base/${lib}.so; then
459     ln -sf $subdir_up/$libbaseso $destdir/$libbaseso
460   else
461     cp -a ${lib}.so $destdir/$libbaseso
462   fi
463   # Emulate ldconfig
464   ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
465 done
466 cd ..
467 }
468
469
470 # Install locales
471 %if %{build_locales}
472         # XXX Do not install locales in parallel!
473         cd cc-base
474         # localedef creates hardlinks to other locales if possible
475         # this will not work if we generate them in parallel.
476         # thus we need to run fdupes on  /usr/lib/locale/
477         # Still, on my system this is a speed advantage:
478         # non-parallel build for install-locales: 9:34mins
479         # parallel build with fdupes: 7:08mins
480         make %{?_smp_mflags} install_root=%{buildroot} localedata/install-locales
481         %fdupes %{buildroot}/usr/lib/locale
482         cd ..
483 %endif
484 # Create file list for glibc-locale package
485 %{find_lang} libc
486
487 # Prepare obsolete/, used only on some architectures:
488 export RPM_BUILD_ROOT
489 %ifarch %ix86
490 mkdir -p %{buildroot}/%{_lib}/obsolete
491 %endif
492
493 # NPTL <bits/stdio-lock.h> is not usable outside of glibc, so include
494 # the generic one (RH#162634)
495 # cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h
496
497
498 # Miscelanna:
499
500 install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir}
501
502 install -m 644 %{SOURCE7} %{buildroot}/etc
503 install -m 644 %{SOURCE5} %{buildroot}/etc
504 install -m 644 posix/gai.conf %{buildroot}/etc
505
506 mkdir -p %{buildroot}/etc/default
507 install -m 644 nis/nss %{buildroot}/etc/default/
508
509 mkdir -p %{buildroot}%{_includedir}/resolv
510 install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/
511 install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/
512
513 %if %{build_html}
514 mkdir -p %{buildroot}%{_datadir}/doc/glibc
515 cp -p cc-base/manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc
516 %endif
517
518
519 #
520 # Create ld.so.conf
521 #
522 cat > %{buildroot}/etc/ld.so.conf <<EOF
523 %if "%{_lib}" == "lib64"
524 /usr/local/lib64
525 %endif
526 /usr/local/lib
527 include /etc/ld.so.conf.d/*.conf
528 # /lib64, /lib, /usr/lib64 and /usr/lib gets added
529 # automatically by ldconfig after parsing this file.
530 # So, they do not need to be listed.
531 EOF
532 # Add ldconfig cache directory for directory ownership
533 mkdir -p %{buildroot}/var/cache/ldconfig
534 # Empty the ld.so.cache:
535 rm -f %{buildroot}/etc/ld.so.cache
536 touch %{buildroot}/etc/ld.so.cache
537
538 # Don't look at ldd! We don't wish a /bin/sh requires
539 chmod 644 %{buildroot}%{_bindir}/ldd
540
541 # Remove timezone data, now coming in standalone package:
542 for i in sbin/sln usr/bin/tzselect usr/sbin/zic usr/sbin/zdump etc/localtime; do
543         rm -f %{buildroot}/$i
544 done
545 rm -rf %{buildroot}%{_datadir}/zoneinfo
546
547 %ifarch armv7hl
548 # Provide compatibility link
549 ln -s ld-%{glibc_major_version}.so %{buildroot}/lib/ld-linux.so.3
550 %endif
551
552 # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link
553 mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf
554 ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf
555
556 #######################################################################
557 ###
558 ### ...
559 ###
560 #######################################################################
561
562 %{?asan:
563 %ifarch %{asan_arch}
564 HERE=%{_builddir}/%{name}-%{version}
565 GLIBC=$HERE
566 ASAN_BUILD=$HERE/asan-build
567 cp $ASAN_BUILD/libc.so %{buildroot}/%{_lib}/libc-2.24-asan.so
568 %endif
569 }
570
571 %{?glibc_run_tests:
572   mkdir testresults
573   cp --parents $(find cc-base -name "*tests.sum") testresults/
574   cp check.log testresults/
575   chmod 644 $(find testresults/ -type f)
576 }
577
578 %post -p %{_sbindir}/glibc_post_upgrade
579
580 %postun -p /sbin/ldconfig
581
582 %post locale
583 for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do
584         [ -d "$l.d" ] || continue
585         echo "###X# The following is autogenerated from extra files in the .d directory:" >>"$l"
586         cat "$l.d"/* >>"$l"
587 done
588 /usr/sbin/iconvconfig
589
590 %post info
591 %install_info --info-dir=%{_infodir} %{_infodir}/libc.info.gz
592
593 %postun info
594 %install_info_delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz
595
596 %files
597 %manifest %{name}.manifest
598 # glibc
599 %defattr(-,root,root)
600 %license LICENSES COPYING COPYING.LIB
601 %config(noreplace) /etc/bindresvport.blacklist
602 %config /etc/ld.so.conf
603 %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache
604 %config(noreplace) /etc/rpc
605 %verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
606 %verify(not md5 size mtime) %config(noreplace) /etc/gai.conf
607 %config(noreplace) /etc/default/nss
608 /%{_lib}/ld-%{glibc_major_version}.so
609
610 # Each architecture has a different name for the dynamic linker:
611 %ifarch %arm
612 %ifarch armv7hl
613 /%{_lib}/ld-linux-armhf.so.3
614 # Keep compatibility link
615 /%{_lib}/ld-linux.so.3
616 %else
617 /%{_lib}/ld-linux.so.3
618 %endif
619 %endif
620 %ifarch x86_64
621 /%{_lib}/ld-linux-x86-64.so.2
622 %endif
623 %ifarch %ix86 %sparc
624 /%{_lib}/ld-linux.so.2
625 %endif
626 %ifarch aarch64
627 /lib/ld-linux-aarch64.so.1
628 /%{_lib}/ld-linux-aarch64.so.1
629 %endif
630
631 /%{_lib}/libanl-%{glibc_major_version}.so
632 /%{_lib}/libanl.so.1
633 /%{_lib}/libc-%{glibc_major_version}.so
634 /%{_lib}/libc.so.6*
635 /%{_lib}/libcrypt-%{glibc_major_version}.so
636 /%{_lib}/libcrypt.so.1
637 /%{_lib}/libdl-%{glibc_major_version}.so
638 /%{_lib}/libdl.so.2*
639 /%{_lib}/libm-%{glibc_major_version}.so
640 /%{_lib}/libm.so.6*
641 /%{_lib}/libnsl-%{glibc_major_version}.so
642 /%{_lib}/libnsl.so.1
643 /%{_lib}/libnss_compat-%{glibc_major_version}.so
644 /%{_lib}/libnss_compat.so.2
645 /%{_lib}/libnss_db-%{glibc_major_version}.so
646 /%{_lib}/libnss_db.so.2
647 /%{_lib}/libnss_dns-%{glibc_major_version}.so
648 /%{_lib}/libnss_dns.so.2
649 /%{_lib}/libnss_files-%{glibc_major_version}.so
650 /%{_lib}/libnss_files.so.2
651 /%{_lib}/libnss_optfiles-%{glibc_major_version}.so
652 /%{_lib}/libnss_optfiles.so.2
653 /%{_lib}/libnss_hesiod-%{glibc_major_version}.so
654 /%{_lib}/libnss_hesiod.so.2
655 /%{_lib}/libpthread-%{glibc_major_version}.so
656 /%{_lib}/libpthread.so.0
657 /%{_lib}/libthread_db-1.0.so
658 /%{_lib}/libthread_db.so.1
659 /%{_lib}/libresolv-%{glibc_major_version}.so
660 /%{_lib}/libresolv.so.2
661 /%{_lib}/librt-%{glibc_major_version}.so
662 /%{_lib}/librt.so.1
663 /%{_lib}/libutil-%{glibc_major_version}.so
664 /%{_lib}/libutil.so.1
665 %define optimized_libs() \
666         %dir %attr(0755,root,root) /%{_lib}/%1\
667         /%{_lib}/%1/libc-%{glibc_major_version}.so\
668         /%{_lib}/%1/libc.so.6*\
669         /%{_lib}/%1/libm-%{glibc_major_version}.so\
670         /%{_lib}/%1/libm.so.6*\
671         /%{_lib}/%1/libpthread-%{glibc_major_version}.so\
672         /%{_lib}/%1/libpthread.so.0\
673         /%{_lib}/%1/librt-%{glibc_major_version}.so\
674         /%{_lib}/%1/librt.so.1\
675         /%{_lib}/%1/libthread_db-1.0.so\
676         /%{_lib}/%1/libthread_db.so.1
677
678 %dir %attr(0700,root,root) /var/cache/ldconfig
679 /sbin/ldconfig
680 %{_bindir}/gencat
681 %{_bindir}/getconf
682 %{_bindir}/getent
683 %{_bindir}/iconv
684 %attr(755,root,root) %{_bindir}/ldd
685 %ifarch %ix86 sparc sparcv9
686         %{_bindir}/lddlibc4
687 %endif
688 %{_bindir}/locale
689 %{_bindir}/localedef
690 %dir %attr(0755,root,root) %{_libexecdir}/getconf
691 %{_libexecdir}/getconf/*
692 %{_sbindir}/glibc_post_upgrade
693 %{_sbindir}/iconvconfig
694 /%{_lib}/libBrokenLocale-%{glibc_major_version}.so
695 /%{_lib}/libBrokenLocale.so.1
696
697 %ifarch %ix86
698
699 %files obsolete
700 %manifest %{name}.manifest
701 %license COPYING.LIB
702 %defattr (755,root,root,755)
703 %dir /%{_lib}/obsolete/
704         #%dir /%{_lib}/obsolete/noversion
705         #/%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so
706         #/%{_lib}/obsolete/noversion/libNoVersion.so.1
707 %endif
708
709 %files locale -f libc.lang
710 %manifest %{name}.manifest
711 %license COPYING COPYING.LIB
712 %defattr(-,root,root)
713 %{_datadir}/locale/locale.alias
714 %if %{build_locales}
715 /usr/lib/locale/*
716 %endif
717 %{_libdir}/gconv
718
719 %{?asan:
720 %ifarch %{asan_arch}
721 %files asan
722 %manifest %{name}.manifest
723 /%{_lib}/libc-2.24-asan.so
724 %endif
725 }
726
727 %files devel
728 %manifest %{name}.manifest
729 %defattr(-,root,root)
730 %license COPYING COPYING.LIB 
731 %doc NEWS README
732 %{_bindir}/rpcgen
733 %{_includedir}/*
734 %{_libdir}/*.o
735 %{_libdir}/*.so
736 # These static libraries are needed even for shared builds
737 %{_libdir}/libc_nonshared.a
738 %{_libdir}/libg.a
739 %ifarch ppc ppc64 s390 s390x sparc sparcv8 sparcv9 sparcv9v
740 # This is not built on sparc64.
741         %{_libdir}/libnldbl_nonshared.a
742 %endif
743 %{_libdir}/libmcheck.a
744 %{_libdir}/librpcsvc.a
745
746 %files devel-static
747 %manifest %{name}.manifest
748 %defattr(-,root,root)
749 %{_libdir}/libBrokenLocale.a
750 %{_libdir}/libanl.a
751 %{_libdir}/libc.a
752 %{_libdir}/libcrypt.a
753 %{_libdir}/libdl.a
754 %{_libdir}/libm.a
755 %{_libdir}/libpthread.a
756 %{_libdir}/libresolv.a
757 %{_libdir}/librt.a
758 %{_libdir}/libutil.a
759
760 %files info
761 %manifest %{name}.manifest
762 %defattr(-,root,root)
763 %doc %{_infodir}/libc.info.gz
764 %doc %{_infodir}/libc.info-?.gz
765 %doc %{_infodir}/libc.info-??.gz
766
767 %if %{build_html}
768 %files html
769 %manifest %{name}.manifest
770 %defattr(-,root,root)
771 %doc %{_prefix}/share/doc/glibc
772 %endif
773
774 %files i18ndata
775 %manifest %{name}.manifest
776 %defattr(-,root,root)
777 %{_prefix}/share/i18n
778
779 %if %{build_profile}
780 %files profile
781 %manifest %{name}.manifest
782 %license COPYING COPYING.LIB
783 %defattr(-,root,root)
784 %{_libdir}/libc_p.a
785 %{_libdir}/libBrokenLocale_p.a
786 %{_libdir}/libanl_p.a
787 %{_libdir}/libm_p.a
788 %{_libdir}/libcrypt_p.a
789 %{_libdir}/libpthread_p.a
790 %{_libdir}/libresolv_p.a
791 %{_libdir}/librt_p.a
792 %{_libdir}/librpcsvc_p.a
793 %{_libdir}/libutil_p.a
794 %{_libdir}/libdl_p.a
795 %endif
796
797 %files devel-utils
798 %manifest %{name}.manifest
799 %defattr(-,root,root)
800 /%{_lib}/libmemusage.so
801 /%{_lib}/libpcprofile.so
802 /%{_libdir}/libBrokenLocale.so
803 /%{_lib}/libSegFault.so
804 /%{_lib}/libthread_db-1.0.so
805 /%{_lib}/libthread_db.so.1
806 /%{_libdir}/libthread_db.so
807 %dir /%{_libdir}/audit
808 /%{_libdir}/audit/sotruss-lib.so
809 # These need gd-devel for building
810 # %%{_bindir}/memusage
811 # %%{_bindir}/memusagestat
812 %{_bindir}/mtrace
813 %{_bindir}/pcprofiledump
814 %{_bindir}/sotruss
815 %{_bindir}/xtrace
816 %{_bindir}/pldd
817 %{_bindir}/catchsegv
818 %{_bindir}/sprof
819
820 %files extra
821 %manifest %{name}.manifest
822 %license COPYING.LIB
823 %defattr(-,root,root)
824 %{_bindir}/makedb
825 /var/db/Makefile
826
827 %{?glibc_run_tests:
828 %files testresults
829 %defattr(-,root,root)
830 %doc testresults/check.log
831 %doc testresults/*
832 }
833
834 %docs_package