Skip to content

thirdparty-linuxmusl-aarch64 unable to properly compile binaries #63

@NovaAndrom3da

Description

@NovaAndrom3da

Initial V compilation:

$ make
cd ./vc && git clean -xf && git pull --quiet
make fresh_tcc
make[1]: Entering directory '/home/hybris/v'
rm -rf ./thirdparty/tcc
git clone --filter=blob:none --quiet --branch thirdparty-linuxmusl-aarch64 https://github.com/vlang/tccbin ./thirdparty/tcc
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 24 (delta 0), reused 0 (delta 0), pack-reused 11 (from 1)
Receiving objects: 100% (24/24), 2.17 MiB | 10.23 MiB/s, done.
make[1]: Leaving directory '/home/hybris/v'
cd ./thirdparty/tcc && git clean -xf && git pull --quiet
clang -std=c99 -w -o v1 ./vc/v.c -lm -lpthread || cmd/tools/cc_compilation_failed_non_windows.sh
./v1 -no-parallel -o v2   cmd/v
./v2 -nocache -o ./v   cmd/v
rm -rf v1 v2
================== C compilation error (from tcc): ==============
cc: tcc: error: undefined symbol '__data_start'
=================================================================
Try passing `-g` when compiling, to see a .v file:line information, that correlates more with the C error.
(Alternatively, pass `-show-c-output`, to print the full C error message).
builder error: 
==================
C error found while compiling generated C code.
This can be caused by invalid C interop code, C compiler flags, or a V compiler bug.
If your code is pure V and this still happens, please report it using `v bug file.v`,
or goto https://github.com/vlang/v/issues/new/choose .
You can also use #help on Discord: https://discord.gg/vlang .
make: *** [GNUmakefile:129: all] Error 1
$ ./v cmd/tools/detect_tcc.v -show-c-output
======== Output of the C Compiler (/home/hybris/v/thirdparty/tcc/tcc.exe) ========
tcc: error: undefined symbol '__data_start'
==================================================================================
======== Output of the C Compiler (cc) ========
aarch64-chimera-linux-musl-ld: error: undefined symbol: __data_start
>>> referenced by gc.c
>>>               gc.o:(GC_register_data_segments) in archive /home/hybris/v/thirdparty/tcc/lib/libgc.a
>>> referenced by gc.c
>>>               gc.o:(GC_register_data_segments) in archive /home/hybris/v/thirdparty/tcc/lib/libgc.a
>>> referenced by gc.c
>>>               gc.o:(GC_stopped_mark) in archive /home/hybris/v/thirdparty/tcc/lib/libgc.a
>>> referenced 1 more times
cc: error: linker command failed with exit code 1 (use -v to see invocation)
===============================================

BTW, V and TCC work just fine with the same OS on x86_64.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions