# Files shared with other projects.  Pass a file path to the
# get_glibc_shared_code() function in the python library
# scripts/glibc_shared_code.py to get a dict object with this information.  See
# the library sources for more information.

# The headers on most of these files indicate that glibc is the canonical
# source for these files, although in many cases there seem to be useful
# changes in the gnulib versions that could be merged back in. Not all gnulib
# files contain such a header and it is not always consistent in its format, so
# it would be useful to make sure that all gnulib files that are using glibc as
# upstream have a greppable header.
#
# These files are quite hard to find without a header to grep for and each file
# has to be compared manually so this list is likely incomplete or may contain
# errors.
gnulib:
  COPYINGv2
  COPYINGv3
  COPYING.LESSERv2
  doc/fdl-1.3.texi
  argp/argp-ba.c
  argp/argp-ba.c
  argp/argp-eexst.c
  argp/argp-fmtstream.c
  argp/argp-fmtstream.h
  argp/argp-fs-xinl.c
  argp/argp-help.c
  argp/argp-namefrob.h
  argp/argp-parse.c
  argp/argp-pv.c
  argp/argp-pvh.c
  argp/argp-xinl.c
  argp/argp.h
  dirent/alphasort.c
  dirent/scandir.c
  # Merged from gnulib 2025-10-29 (gnulib commit 1790ef25d8)
  include/intprops.h
  include/intprops-internal.h
  # Merged from gnulib 2021-09-21
  include/regex.h
  locale/programs/3level.h
  # Merged from gnulib 2014-6-23
  malloc/obstack.c
  # Merged from gnulib 2014-6-23
  malloc/obstack.h
  # Merged from gnulib 2014-07-10
  misc/error.c
  misc/error.h
  misc/getpass.c
  misc/mkdtemp.c
  # Merged from gnulib 2021-09-21
  misc/sys/cdefs.h
  posix/fnmatch_loop.c
  # Intended to be the same. Gnulib copy contains glibc changes.
  posix/getopt.c
  # Intended to be the same. Gnulib copy contains glibc changes.
  posix/getopt1.c
  # Intended to be the same. Gnulib copy contains glibc changes.
  posix/getopt_int.h
  posix/glob.c
  # Merged from gnulib 2021-09-21
  posix/regcomp.c
  # Merged from gnulib 2021-09-21
  posix/regex.c
  # Merged from gnulib 2021-09-21
  posix/regex.h
  # Merged from gnulib 2021-09-21
  posix/regex_internal.c
  # Merged from gnulib 2021-09-21
  posix/regex_internal.h
  # Merged from gnulib 2021-09-21
  posix/regexec.c
  posix/spawn.c
  posix/spawn_faction_addclose.c
  posix/spawn_faction_adddup2.c
  posix/spawn_faction_addopen.c
  posix/spawn_faction_destroy.c
  posix/spawn_faction_init.c
  posix/spawn_int.h
  posix/spawnattr_destroy.c
  posix/spawnattr_getdefault.c
  posix/spawnattr_getflags.c
  posix/spawnattr_getpgroup.c
  posix/spawnattr_getschedparam.c
  posix/spawnattr_getschedpolicy.c
  posix/spawnattr_getsigmask.c
  posix/spawnattr_init.c
  posix/spawnattr_setdefault.c
  posix/spawnattr_setflags.c
  posix/spawnattr_setpgroup.c
  posix/spawnattr_setschedparam.c
  posix/spawnattr_setschedpolicy.c
  posix/spawnattr_setsigmask.c
  posix/spawnp.c
  stdlib/atoll.c
  stdlib/getsubopt.c
  stdlib/setenv.c
  stdlib/strtoll.c
  stdlib/strtoul.c
  # Merged from gnulib 2014-6-26, needs merge back
  string/memchr.c
  string/memcmp.c
  string/memmem.c
  string/mempcpy.c
  string/memrchr.c
  string/rawmemchr.c
  string/stpcpy.c
  string/stpncpy.c
  string/str-two-way.h
  string/strcasestr.c
  string/strcspn.c
  string/strdup.c
  string/strndup.c
  string/strpbrk.c
  string/strsignal.c
  string/strstr.c
  string/strtok_r.c
  string/strverscmp.c
  # Merged from gnulib 2024-04-08 (gnulib commit 3238349628)
  stdio-common/tmpdir.c
  stdio-common/tmpdir.h
  sysdeps/generic/pty-private.h
  sysdeps/generic/siglist.h
  sysdeps/posix/euidaccess.c
  sysdeps/posix/gai_strerror.c
  sysdeps/posix/getcwd.c
  sysdeps/posix/pwrite.c
  sysdeps/posix/spawni.c
  # Merged from gnulib 2024-04-08 (gnulib commit 3238349628)
  sysdeps/posix/tempname.c
  # Merged from gnulib 2014-6-27
  time/mktime.c
  time/mktime-internal.h
  time/strptime.c
  time/timegm.c

# The last merge was 2014-12-11 and merged gettext 0.19.3 into glibc with a
# patch submitted to the gettext mailing list for changes that could be merged
# back.
#
# This commit was omitted from the merge as it does not appear to be compatible
# with how glibc expects things to work:
#
# commit 279b57fc367251666f00e8e2b599b83703451afb
# Author: Bruno Haible <bruno@clisp.org>
# Date:   Fri Jun 14 12:03:49 2002 +0000
#
#     Make absolute pathnames inside $LANGUAGE work.
gettext:
  intl/bindtextdom.c
  intl/dcgettext.c
  intl/dcigettext.c
  intl/dcngettext.c
  intl/dgettext.c
  intl/dngettext.c
  intl/explodename.c
  intl/finddomain.c
  intl/gettext.c
  intl/gettextP.h
  intl/gmo.h
  intl/hash-string.c
  intl/hash-string.h
  intl/l10nflist.c
  intl/loadinfo.h
  intl/loadmsgcat.c
  intl/locale.alias
  intl/localealias.c
  intl/ngettext.c
  intl/plural-exp.c
  intl/plural-exp.h
  intl/plural.y
  intl/textdomain.c

# The following files are bundled from upstream Linux 6.10 for FUSE testing
# support.
linux:
  support/bundled/linux/COPYING
  support/bundled/linux/LICENSES
  support/bundled/linux/LICENSES/exceptions/Linux-syscall-note
  support/bundled/linux/LICENSES/preferred/GPL-2.0
  support/bundled/linux/include/uapi/linux/fuse.h

# The following files are shared with the upstream Unicode project and must be
# updated regularly to stay in sync with the upstream unicode releases.
#
# Merged from Unicode 16.0.0 release.
unicode:
  localedata/unicode-gen/UnicodeData.txt
  localedata/unicode-gen/unicode-license.txt
  localedata/unicode-gen/DerivedCoreProperties.txt
  localedata/unicode-gen/EastAsianWidth.txt
  localedata/unicode-gen/HangulSyllableType.txt

# The following files are shared with the upstream tzcode project and must be
# updated regularly to stay in sync with the upstream releases.
#
# Currently synced to TZDB 2024b, announced and distributed here:
#	https://github.com/eggert/tz/releases/tag/2024b
tzcode:
  timezone/private.h
  timezone/tzfile.h
  timezone/tzselect.ksh
  timezone/version
  timezone/zdump.c
  timezone/zic.c

# The following files are shared with the upstream tzdata project but is not
# synchronized regularly. The data files themselves are used only for testing
# purposes and their data is never used to generate any output. We synchronize
# them only to stay on top of newer data that might help with testing.
#
# Currently synced to tzcode 2009i, announced and distributed here:
#	https://mm.icann.org/pipermail/tz/2009-June/040697.html
#	https://data.iana.org/time-zones/releases/tzdata2009i.tar.gz
tzdata:
  timezone/africa
  timezone/antarctica
  timezone/asia
  timezone/australasia
  timezone/europe
  timezone/northamerica
  timezone/southamerica
  timezone/pacificnew
  timezone/etcetera
  timezone/factory
  timezone/backward
  timezone/systemv
  timezone/solar87
  timezone/solar88
  timezone/solar89
  timezone/iso3166.tab
  timezone/zone.tab
  timezone/leapseconds
  # This is yearistype.sh in the parent project
  timezone/yearistype

# The following files are imported from the CORE-MATH project, with
# adjustments made to follow glibc code style, to utilize internal error
# handling functions, and to implement minor fixes for ABIs with
# FLT_EVAL_METHOD equal to 2 (i386).  Additionally, extra optimizations
# are applied to share the internal data table across different
# implementations.
# 
# The project is distribute here:
#       https://gitlab.inria.fr/core-math/core-math/
core-math:
  # src/binary64/acosh/acosh.c, revision 1bd85b89
  sysdeps/ieee754/dbl-64/e_acosh.c
  # src/binary64/atanh/atanh.c, revision c423b9a3
  sysdeps/ieee754/dbl-64/e_atanh.c
  # src/binary64/tgamma/tgamma.c, revision 0f185e23
  sysdeps/ieee754/dbl-64/e_gamma_r.c
  # src/binary64/lgamma/lgamma.c, revision 0413bb7e
  sysdeps/ieee754/dbl-64/e_lgamma_r.c
  # src/binary64/asinh/asinh.c, revision cd653cf7
  sysdeps/ieee754/dbl-64/s_asinh.c
  # src/binary64/erf/erf.c, revision 384ed01d
  sysdeps/ieee754/dbl-64/s_erf.c
  # src/binary64/erfc/erfc.c, revision 55e9869e
  sysdeps/ieee754/dbl-64/s_erfc.c
  # src/binary32/acos/acosf.c, revision 56dd347
  sysdeps/ieee754/flt-32/e_acosf.c
  # src/binary32/acosh/acoshf.c, revision d0b9ddd
  sysdeps/ieee754/flt-32/e_acoshf.c
  # file src/binary32/cosh/coshf.c, revision de59ecfb
  sysdeps/ieee754/flt-32/e_coshf.c
  # src/binary32/tgamma/tgammaf.c, revision a48e352
  sysdeps/ieee754/flt-32/e_gammaf_r.c
  # src/binary32/lgamma/lgammaf.c, revision bc385c2
  sysdeps/ieee754/flt-32/e_lgammaf_r.c
  # src/binary32/log10/log10f.c, revision bc385c2
  sysdeps/ieee754/flt-32/e_log10f.c
  # src/binary32/sinh/sinhf.c, revision bbfabd99
  sysdeps/ieee754/flt-32/e_sinhf.c
  # src/binary32/acospi/acospif.c, revision 1a6a9ab
  sysdeps/ieee754/flt-32/s_acospif.c
  # src/binary32/asinpi/asinpif.c, revision 6ee58266
  sysdeps/ieee754/flt-32/s_asinpif.c
  # src/binary32/atan2pi/atan2pif.c, revision dbebee1
  sysdeps/ieee754/flt-32/s_atan2pif.c
  # src/binary32/atanpi/atanpif.c, revision e02000e
  sysdeps/ieee754/flt-32/s_atanpif.c
  # src/binary32/cbrt/cbrtf.c, revision f7c7408d
  sysdeps/ieee754/flt-32/s_cbrtf.c
  # src/binary32/cospi/cospif.c, revision bbfabd99
  sysdeps/ieee754/flt-32/s_cospif.c
  # src/binary32/erfc/erfcf.c revision d0a2be20
  sysdeps/ieee754/flt-32/s_erfcf.c
  # src/binary32/erf/erff.c revision bc385c2
  sysdeps/ieee754/flt-32/s_erff.c
  # src/binary32/exp10m1/exp10m1f.c, revision c46b85b
  sysdeps/ieee754/flt-32/s_exp10m1f.c
  # src/binary32/exp2m1/exp2m1f.c, revision baf5f6b
  sysdeps/ieee754/flt-32/s_exp2m1f.c
  # src/binary32/expm1/expm1f.c, revision bc385c2
  sysdeps/ieee754/flt-32/s_expm1f.c
  # src/binary32/log10p1/log10p1f.c revision bc385c2
  sysdeps/ieee754/flt-32/s_log10p1f.c
  # src/binary32/log1p/log1pf.c revision bc385c2
  sysdeps/ieee754/flt-32/s_log1pf.c
  # src/binary32/log2p1/log2p1f.c revision bc385c2
  sysdeps/ieee754/flt-32/s_log2p1f.c
  # src/binary32/sinpi/sinpif.c, revision bbfabd99d
  sysdeps/ieee754/flt-32/s_sinpif.c
  # src/binary32/tan/tanf.c, revision 59d21d7
  sysdeps/ieee754/flt-32/s_tanf.c
  # src/binary32/tanh/tanhf.c, revision b1ecd83
  sysdeps/ieee754/flt-32/s_tanhf.c
  # src/binary32/tanpi/tanpif.c, revision 3bbf907
  sysdeps/ieee754/flt-32/s_tanpif.c
