Re: [scc-dev] musl compilation on aarch64

From: Roberto E. Vargas Caballero <k0ga_at_shike2.com>
Date: Wed, 27 Mar 2024 08:07:12 +0100

Hi,


First,I would like to apolgize for the delay, but I am in a travel in the
opposite side of the world, so I didn't have too much time to look this mail.

On Thu, Mar 14, 2024 at 05:14:45PM -0300, Brian Mayer wrote:
> Following up with the aarch64 support, now I'm trying to compile it
> for a musl system, I'm using buildroot that uses GCC with a musl libc
> compiled.
>
> My build commands are:
>
> make LIBPROFILE=musl config
> make

They seem correct. I suppose you ran them after a make distclean to be
sure that the tree is clean. You should be aware of this part of the
README file too:

        It will generate the files sys.h configured to be used with
        a musl libc. Beware that it is likely that those files have
        to be customized to fit your system because the macro
        GCCLIBPATH used by the musl template depends heavily of the
        toolchain used to compile musl. As the musl libc is likely
        installed in a different prefix the scc compilation must
        be modified to:

                $ make LIBPREFIX=/usr/local/musl # point to the prefix used by your musl

> Build fails while compiling something on qbe submodule:

Following your log seems an error linking scc-ar instead of a problem in qbe.
Are you using parallel build in this log? (it can make logs very confusing).

> make[4]: Entering directory
> '/home/blmayer/git/distro/buildroot/output/build/scc-13fabd7c1b99fc97c8fe9cfb58f4e898eb8599f9/src/cmd'
> /home/blmayer/git/distro/buildroot/output/host/bin/aarch64-buildroot-linux-musl-gcc
> -L../../lib/scc nm.o -lmach -lscc -o ../../bin/scc-nm
> /home/blmayer/git/distro/buildroot/output/host/bin/aarch64-buildroot-linux-musl-gcc
> -L../../lib/scc ar.o posix.o -o ../../bin/scc-ar
> /home/blmayer/git/distro/buildroot/output/host/bin/aarch64-buildroot-linux-musl-gcc
> -L../../lib/scc strip.o -lmach -lscc -o ../../bin/scc-strip
> /home/blmayer/git/distro/buildroot/output/host/bin/aarch64-buildroot-linux-musl-gcc
> -L../../lib/scc size.o -lmach -lscc -o ../../bin/scc-size
> /home/blmayer/git/distro/buildroot/output/host/bin/aarch64-buildroot-linux-musl-gcc
> -L../../lib/scc ranlib.o posix.o -lmach -lscc -o
> ../../bin/scc-ranlib
> /home/blmayer/git/distro/buildroot/output/host/bin/aarch64-buildroot-linux-musl-gcc
> -L../../lib/scc objdump.o -lmach -o ../../bin/scc-objdump
> /home/blmayer/git/distro/buildroot/output/host/bin/aarch64-buildroot-linux-musl-gcc
> -L../../lib/scc objcopy.o -lmach -o ../../bin/scc-objcopy
> /home/blmayer/git/distro/buildroot/output/host/lib/gcc/aarch64-buildroot-linux-musl/12.3.0/../../../../aarch64-buildroot-linux-musl/bin/ld:
> ar.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `stderr'
> which may bind externally can not be used when making a shared object;
> recompile with -fPIC

This seems very strange. Are you sure you are using the same toolchain for all the objects?
Can you try to update to last master and try again with a clean source tree?
If the problem persist, I would need the full log of the build to try to see what
is going on. It can be a problem compiling ar.o whose compilation is not shown
in your original message.


Kind Regards,
--
To unsubscribe send a mail to scc-dev+unsubscribe_at_simple-cc.org
Received on Wed 27 Mar 2024 - 08:07:12 CET

This archive was generated by hypermail 2.3.0 : Wed 27 Mar 2024 - 08:10:38 CET