Differences between revisions 14 and 15
Revision 14 as of 2013-04-06 21:11:13
Size: 4710
Comment:
Revision 15 as of 2013-06-21 06:54:50
Size: 5059
Editor: tschwinge
Comment: id:"20130620215941.51C722C135@topped-with-meat.com"
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
These are files imported verbatim from elsewhere, or generated files where we don't require the generator (for example, Autoconf for regenerating {{{configure}}} scripts) or its run-time dependencies (for example, Perl for regenerating {{{C-translit.h}}}) to be available when building glibc, or when regeneration of such a file is unusually slow.

Regenerating and updating upstream files

Some files checked in to the glibc repository are not maintained directly as source code in glibc. These are files imported verbatim from elsewhere, or generated files where we don't require the generator (for example, Autoconf for regenerating configure scripts) or its run-time dependencies (for example, Perl for regenerating C-translit.h) to be available when building glibc, or when regeneration of such a file is unusually slow. 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;

      Review the output, and then run each command by hand. Revert any changes that add newlines to the end of files.
  • 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+.

None: Regeneration (last edited 2014-06-30 23:16:22 by CarlosODonell)