Module Name:    src
Committed By:   riastradh
Date:           Thu Jul 11 08:13:50 UTC 2024

Modified Files:
        src/distrib/sets: sets.subr
        src/distrib/sets/lists/base: ad.arm ad.mips mi shl.mi
        src/distrib/sets/lists/base32: ad.aarch64 ad.mips64eb ad.mips64el
            ad.mipsn64eb ad.mipsn64el ad.powerpc64 ad.riscv64 md.amd64
            md.sparc64
        src/distrib/sets/lists/base64: ad.mips64eb ad.mips64el
        src/distrib/sets/lists/debug: ad.aarch64 ad.powerpc ad.riscv md.amd64
            md.sparc64 mi shl.mi
        src/distrib/sets/lists/debug32: ad.aarch64 ad.mips64eb ad.mips64el
            ad.mipsn64eb ad.mipsn64el ad.powerpc64 ad.riscv64 md.amd64
            md.sparc64 mi
        src/distrib/sets/lists/debug64: ad.mips64eb ad.mips64el mi

Log Message:
Revert the duplication of compat set lists; do it another way.

1. Restore the compatdir and compatfile tags in base and debug.

   => compatdir marks directories that should have per-ABI compat
      subdirectories, like /usr/lib having /usr/lib/o32 and
      /usr/lib/64 on mips64.

   => compatfile marks files that have per-ABI versions in the
      nearest compatdir, like /usr/lib/o32/libc.so.12.221.

   This is the mechanism we use to avoid duplicating every library
   that has a compat version in multiple set lists.

2. Teach sets.subr to split the compatdir and compatfile entries out
   into separate sets for base and debug.

   The mechanism is to internally use:

   - a new tag `omitcompat' when processing base and debug, so we
     don't generate the per-ABI compat directories or per-ABI compat
     files under them;

   - a new tag `takecompat=${ABI}' when processing base32/64 and
     debug32/64, so we _do_ generate the per-ABI compat directories
     for ${ABI}.

     => On, e.g., mips64, base32 uses `takecompat=o32' and base64
        uses `takecompat=64'.

     => On, e.g., aarch64, base32 uses
        `takecompat=eabi,takecompat=eabihf', and there is no base64.

3. Record in sets.subr the list of `32' and `64' architectures for
   each port.

   This is maybe not the right place to put it, but it's also not
   clear that we want to keep exactly this division -- maybe it would
   be more sensible to just have per-ABI , e.g.:

   (aarch64) base-eabi, base-eabihf
   (amd64) base-i386
   (mips64) base-o32, base-64
   (mipsn64) base-o32, base-n32

   But I'll leave cleaning that up for another day.

4. Adjust some sets.  Mostly this commit shouldn't change what file
   go in what sets, but, e.g., on mips64, the following move from
   base32 to base64 as part of this change, which I think is
   appropriate:

   - /lib/64
   - /libexec/ld.elf_so-64
   - /usr/lib/64
   - /usr/libdata/debug/lib/64
   - /usr/libdata/debug/usr/lib/64
   - /usr/libexec/ld.elf_so-64

TBD: Remove ./lib and ./usr/lib from debug/mi; they're already in
base/mi.  Maybe move ./usr/libdata/debug to from base/mi to debug/mi.

This reverts most of the set list changes in:

https://mail-index.netbsd.org/source-changes/2024/04/09/msg150763.html

PR misc/58365


To generate a diff of this commit:
cvs rdiff -u -r1.206 -r1.207 src/distrib/sets/sets.subr
cvs rdiff -u -r1.88 -r1.89 src/distrib/sets/lists/base/ad.arm
cvs rdiff -u -r1.94 -r1.95 src/distrib/sets/lists/base/ad.mips
cvs rdiff -u -r1.1346 -r1.1347 src/distrib/sets/lists/base/mi
cvs rdiff -u -r1.985 -r1.986 src/distrib/sets/lists/base/shl.mi
cvs rdiff -u -r1.10 -r1.11 src/distrib/sets/lists/base32/ad.aarch64 \
    src/distrib/sets/lists/base32/ad.mips64eb \
    src/distrib/sets/lists/base32/ad.riscv64 \
    src/distrib/sets/lists/base32/md.sparc64
cvs rdiff -u -r1.11 -r1.12 src/distrib/sets/lists/base32/ad.mips64el
cvs rdiff -u -r1.14 -r1.15 src/distrib/sets/lists/base32/ad.mipsn64eb \
    src/distrib/sets/lists/base32/md.amd64
cvs rdiff -u -r1.13 -r1.14 src/distrib/sets/lists/base32/ad.mipsn64el
cvs rdiff -u -r1.9 -r1.10 src/distrib/sets/lists/base32/ad.powerpc64
cvs rdiff -u -r1.8 -r1.9 src/distrib/sets/lists/base64/ad.mips64eb \
    src/distrib/sets/lists/base64/ad.mips64el
cvs rdiff -u -r1.39 -r1.40 src/distrib/sets/lists/debug/ad.aarch64
cvs rdiff -u -r1.40 -r1.41 src/distrib/sets/lists/debug/ad.powerpc
cvs rdiff -u -r1.21 -r1.22 src/distrib/sets/lists/debug/ad.riscv
cvs rdiff -u -r1.126 -r1.127 src/distrib/sets/lists/debug/md.amd64
cvs rdiff -u -r1.90 -r1.91 src/distrib/sets/lists/debug/md.sparc64
cvs rdiff -u -r1.439 -r1.440 src/distrib/sets/lists/debug/mi
cvs rdiff -u -r1.345 -r1.346 src/distrib/sets/lists/debug/shl.mi
cvs rdiff -u -r1.13 -r1.14 src/distrib/sets/lists/debug32/ad.aarch64
cvs rdiff -u -r1.14 -r1.15 src/distrib/sets/lists/debug32/ad.mips64eb \
    src/distrib/sets/lists/debug32/ad.mips64el
cvs rdiff -u -r1.15 -r1.16 src/distrib/sets/lists/debug32/ad.mipsn64eb \
    src/distrib/sets/lists/debug32/ad.mipsn64el
cvs rdiff -u -r1.12 -r1.13 src/distrib/sets/lists/debug32/ad.powerpc64 \
    src/distrib/sets/lists/debug32/ad.riscv64 \
    src/distrib/sets/lists/debug32/md.sparc64
cvs rdiff -u -r1.19 -r1.20 src/distrib/sets/lists/debug32/md.amd64
cvs rdiff -u -r1.1 -r1.2 src/distrib/sets/lists/debug32/mi
cvs rdiff -u -r1.8 -r1.9 src/distrib/sets/lists/debug64/ad.mips64eb \
    src/distrib/sets/lists/debug64/ad.mips64el
cvs rdiff -u -r1.1 -r1.2 src/distrib/sets/lists/debug64/mi

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffs are larger than 1MB and have been omitted

Reply via email to