New issue
Advanced search Search tips

Issue 920008 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Build-Toolchain



Sign in to add a comment

Binutils 2.27 headers are not copied to /usr/include

Project Member Reported by manojgupta@chromium.org, Jan 8

Issue description

Binutils 2.27 has some of the headers installed in a libiberty subdirectory.

/usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/libiberty/ansidecl.h
/usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/libiberty/demangle.h
/usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/libiberty/dyn-string.h
/usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/libiberty/fibheap.h
/usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/libiberty/floatformat.h

These files are not being copied (or symlinked) to /usr/include by binutils-config.

This causes a llvm build fail when bootstrapping e.g.  bug 915711  .
To repro comment the epatch llvm-8.0-revert-headers-as-sources.patch in llvm ebuild.


 
this is WAI.  the libs/headers that are part of binutils itself aren't supposed to be used by packages.  binutils-libs is supposed to be for them.

which gets us into we need to migrate to binutils-libs ...
Actually, there are a few header files in /usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/ that are copied to /usr/include

/usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/ansidecl.h
/usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/bfd.h
/usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/bfdlink.h
/usr/lib64/binutils/x86_64-pc-linux-gnu/2.27.0/include/dis-asm.h

A hack to binutils-config (https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/1400978) also copies the headers inside libiberty which also fixes the missing binutils headers.

But, yes Gentoo might have updated binutils-config as well to not install the headers when installing binutils.

before i split binutils-libs out, the libs & headers were sourced from the binutils package.  but that ended up being an unstable idea and bad for linkage (subslots), so the dedicated binutils-libs package was introduced.  then binutils-config didn't need to do anything.

Sign in to add a comment