|
Size: 4602
Comment:
|
← Revision 14 as of 2013-04-06 21:11:13 ⇥
Size: 4710
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 44: | Line 44: |
| * To update an ulps baseline without the convenience target '''regen-ulps''', run each of the failing tests ({{{test-float}}}, {{{test-double}}}, etc.) with {{{-u}}}; this will generate a file called {{{ULPs}}}; concatenate each of those files with the existing {{{libm-test-ulps}}} file, after removing any entries for particularly huge numbers of ulps that you do not want to mark as expected. Then run {{{gen-libm-test.pl -n -u FILE}}} where FILE is the concatenated file produced in the previous step. This generates a file called {{{NewUlps}}} which is the new sorted version of {{{libm-test-ulps}}}. | * To update an ulps baseline without the convenience target '''regen-ulps''', run each of the failing tests ({{{test-float}}}, {{{test-double}}}, etc.) with {{{-u}}} e.g. {{{./testrun.sh math/test-double -u}}} (use testrun.sh to use the newly built dynamic loader and libm); this will generate a file called {{{ULPs}}}; concatenate each of those files with the existing {{{libm-test-ulps}}} file, after removing any entries for particularly huge numbers of ulps that you do not want to mark as expected. Then run {{{gen-libm-test.pl -n -u FILE}}} where FILE is the concatenated file produced in the previous step. This generates a file called {{{NewUlps}}} which is the new sorted version of {{{libm-test-ulps}}}. |
Regenerating and updating upstream files
Some files checked in to the glibc repository are not maintained directly as source code in glibc. There are no files in glibc-ports that are imported verbatim from elsewhere; glibc-ports contains generated configure scripts, ABI baselines and libm-test-ulps files.
The following come verbatim from upstream and should not be modified locally: scripts/config.guess, scripts/config.sub, scripts/install-sh, scripts/mkinstalldirs, scripts/move-if-change, manual/texinfo.tex. New versions may be updated verbatim from their upstream sources (in the case of manual/texinfo.tex, it may also be necessary to remove trailing whitespace).
The following license texts also come verbatim from upstream: COPYING, COPYING.LIB, manual/fdl-1.3.texi, manual/lgpl-2.1.texi. Any license changes should be discussed by the FSF-appointed maintainers (the Steering Committee) and the FSF.
configure scripts, including fragments in many subdirectories, are generated by autoconf. All should be generated using the same autoconf version (currently 2.68).
When regenerating glibc's configure you can simply run autoconf from the top-level directory.
When regenerating a port's configure you can run autoconf -I<path to glibc src> from the directory that contains the port's configure.in fragment. Alternatively you can run autoconf /path/to/ports/configure.in > /path/to/ports/configure from the top-level glibc directory.
- Bulk regeneration can be done from the top-level glibc source directory with:
for i in `find -L . -name 'configure.in'`; do echo "autoconf -I. $i > ${i%.in}"; done;
locale/programs/charmap-kw.h and locale/programs/locfile-kw.h are generated by gperf.
locale/C-translit.h is generated from locale/C-translit.h.in.
intl/plural.c is generated by bison. It may be necessary to remove trailing whitespace after regeneration.
INSTALL is generated by makeinfo; run make INSTALL to regenerate it. Note that this may add a blank line to the end of INSTALL, which must be removed manually before the regenerated file can be pushed to the glibc repository.
sysdeps/gnu/errlist.c is generated from manual/errno.texi by make sysdeps/gnu/errlist.c.
po/libc.pot is generated by gettext. Regeneration of po/libc.pot assumes that you have symlinked glibc-ports as ports under the main source tree. To regenerate it, run the following from the root of the object directory:
make -r PARALLELMFLAGS="" -C <path to glibc srcdir>/po objdir=`pwd` libc.pot
po/*.po are maintained upstream by the translation teams and should not be modified locally. New versions may be found at the Translation Project site.
The libm-test-ulps files are semiautomatically updated.
Run make regen-ulps and copy the resulting NewUlps file to the target ULPs file as indicated by the printed instructions. Remove any entries for particularly huge numbers of ulps that you do not want to mark as expected.
To update an ulps baseline without the convenience target regen-ulps, run each of the failing tests (test-float, test-double, etc.) with -u e.g. ./testrun.sh math/test-double -u (use testrun.sh to use the newly built dynamic loader and libm); this will generate a file called ULPs; concatenate each of those files with the existing libm-test-ulps file, after removing any entries for particularly huge numbers of ulps that you do not want to mark as expected. Then run gen-libm-test.pl -n -u FILE where FILE is the concatenated file produced in the previous step. This generates a file called NewUlps which is the new sorted version of libm-test-ulps.
ABI baselines in the abilist directory are semiautomatically updated. Run "make check-abi" for your architecture/ABI, make sure any changes to the ABI baselines are desirable and update the baselines using "make update-abi update-abi-config=REGEXP" with REGEXP being taken from the existing baselines.
- Some files come from gettext, libidn or GMP upstream but may also be changed locally in glibc. The procedures for updating these files locally are not well-documented and FSF approval may sometimes be needed to use a newer version under LGPLv2.1+.