[J-core] [musl] musl-cross-make / litecross improvements

Szabolcs Nagy nsz at port70.net
Tue May 3 16:16:22 EDT 2016


* Rich Felker <dalias at libc.org> [2016-05-03 14:02:30 -0400]:
> On Tue, May 03, 2016 at 01:39:43PM +0200, Szabolcs Nagy wrote:
> > possibly make -o info -o install-info -o install-man
> > can do this too (havent tested).
> 
> The -o approach only works when it's added to $(MAKE), because make
> explicitly strips -o's from being passed down recursively in MAKEFLAGS
> etc.

we have to fiddle with MAKE anyway so probably this is
approach is cleaner.

maybe have a RECURSIVE_MAKEFLAGS or similar in toplevel
config.mak (with the caveat that it will be passed to
every make)

> > i'm not sure if it's a good idea distributing the
> > toolchain without debug info, but this is needed
> > if you want to avoid leaking the build path.
> 
> It wouldn't hurt to dig up the gcc option to strip a prefix from the
> debug paths and including an example of how to use it, in case users
> want this.
> 

COMMON_CONFIG += --with-debug-prefix-map=$(PWD)=

> > the target libs are installed under lib64/,
> > i think the usr/ and lib64/ symlinks are useful
> > (so it can be used as rootfs without fiddling
> > with etc/ld-musl*.path).
> 
> Yes. Is there a good way to override that in gcc or should we just
> make the symlinks?
> 

output/lib64 can be eliminated by
COMMON_CONFIG += --libdir=/lib

output/x86_64-linux-musl/lib64 install path is trickier:
it is controlled by the $toolexeclibdir make variable.
which is set according to $CC -print-multi-os-directory
which is controlled by multilib and multilib_defaults from
$CC -dumpspecs which comes from multilib.h generated by
genmultilib based on parameters from config/i386/t-linux64

> > gcc-6 will need
> > GCC_CONFIG += --disable-libmpx
> 
> OK. Is that because their code is broken, or because of something on
> musl's side? Is it detectable?
> 

the code is currently broken (missing includes and uses secure_getenv)

> > and libstdc++ only uses vdso clock_gettime
> > with --enable-libstdcxx-time
> 
> Is there a link to this issue? I don't mind adding it but I'd like to
> know details.

http://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html


> > diff --git a/litecross/Makefile b/litecross/Makefile
> > index fbabe4a..d2a7bce 100644
> > --- a/litecross/Makefile
> > +++ b/litecross/Makefile
> > @@ -17,6 +17,7 @@ MUSL_CONFIG = CC="$(XGCC)" LIBCC="../obj_toolchain/$(TARGET)/libgcc/libgcc.a" --
> >  
> >  MAKE += INFO_DEPS= infodir=
> >  MAKE += ac_cv_prog_lex_root=lex.yy.c
> > +MAKE += gcc_cv_prog_makeinfo_modern=no
> 
> Does this make a difference?

yes, gcc info files are not installed if it's set


More information about the J-core mailing list