Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

staging-next 2022-08-16 #186941

Merged
merged 266 commits into from
Aug 24, 2022
Merged

staging-next 2022-08-16 #186941

merged 266 commits into from
Aug 24, 2022

Conversation

vcunat
Copy link
Member

@vcunat vcunat commented Aug 16, 2022

wegank and others added 30 commits August 2, 2022 18:39
Prevent glib.dev reference from ending up in out due to glib being propagated.
Prevent brotli.dev reference from ending up in out due to brotli being propagated.
The initial intent was to strip .a and .o files, not .a.o files.
While at it expanded stripping for $lib output as well.

Without the change `libgcc.a` was not stripped and `.debug*` sections
made into final binaries. It's not a problem on it's own, but it's an
unintended side-effect. Noticed on `crystal_1_0` test failure where
`crystal` was not able to handle `dwarf-5`.

While at it allowed absolute file names to be passed to stripDebugList
and friends.
Our gcc builder creates lib64->lib links to ensure that the "primary"
libraries for the targetPlatform wind up in $PREFIX/lib.  This is
required in order for make-bootstrap-files.nix to work correctly.

On mips, gcc follows the somewhat awkward IRIX convention of putting
mips32 binaries in `lib` and mips64n32 binaries in `lib32`.  So we
need similar symlinks there.  This may come up on other ILP32
platforms as well, so a general-purpose variable name is provided.
On mips, gcc follows the somewhat awkward IRIX convention of putting
mips64 binaries in `lib64` and mips64n32 binaries in `lib32`.  So on
mips64n32 we do not want the `lib64` symlinks.
This commit factors out the conditional which creates the `lib64->lib`
symlink in the `preInstall` phase, and calculates its value in nix
code rather than bash code so touching it doesn't cause a global
rebuild on every platform.
bintools-wrapper, cc-wrapper: avoid invalid export of 'expand-respons…
gcc: extend stripping of .a libraries and .o objects
Before the change separate-debug-info.sh did the stripping itself.
This scheme has a few problems:
1. Stripping happens only on ELF files. *.a and *.o files are skipped.
   Derivations have to do it manually. Usually incorrectly
   as they don't run $RANLIB (true for `glibc` and `musl`).
2. Stripping happens on all paths. Ideally only `stripDebugList` paths
   should be considered.
3. Host strip is called on Target files.

This change offloads stripping logic to strip hook. This strips more
files for `glibc` and `musl`. Now we can remove most $STRIP calls
from individual derivations.

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Noticed use of $STRIP when passed through various uses of $STRIP
in `nixpkgs`. This looked unusual in a way that it strips not just
debugging symbols but also all the rest.

The change switch to debug-only stripping.

While at it switched to expliict use of `-fPIC` for shared library.
glib: add man pages, make bash completion work
Small release. Most interesting chage is support for binutils-2.39
(non-executable GNU stack marking).

4 changes in this release:

      Handle __mips64
      Bump revision to VERSION = 3.0.15
      lib/Makefile: add .o file dependency on libsubdirs targets
      */*.S: add non-executable GNU stack marking on ELF-linux
@jtojnar
Copy link
Member

jtojnar commented Aug 21, 2022

Right, no upstream patch. We should mark it broken and eventually remove.

@vcunat vcunat requested a review from jtojnar as a code owner August 22, 2022 06:58
@github-actions github-actions bot added the 6.topic: GNOME GNOME desktop environment and its underlying platform label Aug 22, 2022
@vcunat
Copy link
Member Author

vcunat commented Aug 22, 2022

For people who want to help, now is a relatively good moment to look at regressions, though there aren't really many (and some get covered in PR #187778):
https://hydra.nixos.org/eval/1777342?compare=1777343#tabs-now-fail

@vcunat vcunat merged commit b784c5a into master Aug 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.