https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64810

--- Comment #13 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
(In reply to David Malcolm from comment #12)
> Created attachment 34612 [details]
> WIP patch to inject configure-time options into jit's toplev::main (no
> ChangeLog yet)

With this patch, the 1st iteration of each test case works, with toplev::main
containing e.g.:
JIT:    entering: toplev::main
JIT:     argv[0]: ./test-hello-world.c.exe
JIT:     argv[1]: /tmp/libgccjit-E39s8G/fake.c
JIT:     argv[2]: -fPIC
JIT:     argv[3]: -O3
JIT:     argv[4]: -g
JIT:     argv[5]: -quiet
JIT:     argv[6]: --param
JIT:     argv[7]: ggc-min-expand=0
JIT:     argv[8]: --param
JIT:     argv[9]: ggc-min-heapsize=0
JIT:     argv[10]: -fdump-tree-all
JIT:     argv[11]: -fdump-rtl-all
JIT:     argv[12]: -fdump-ipa-all
JIT:     argv[13]: -march=armv7-a
JIT:     argv[14]: -mfloat-abi=hard
JIT:     argv[15]: -mfpu=vfpv3-d16
JIT:     argv[16]: -mtls-dialect=gnu

(note the presence of e.g. "-mfloat-abi=hard")

However, it fails on the 2nd in-process iteration of each test case, with e.g.:
GNU assembler version 2.24 (armv7hl-redhat-linux-gnueabi) using BFD version
version 2.24
/tmp/libgccjit-E39s8G/fake.s: Assembler messages:
/tmp/libgccjit-E39s8G/fake.s:1: Error: unknown cpu `armv7-a'
./test-hello-world.c.exe: error: error invoking gcc driver: exit_status: 256
err: 0

The 1st iteration's .s file begins:

        .arch armv7-a
        .eabi_attribute 28, 1
        .fpu vfpv3-d16
        .eabi_attribute 20, 1
        .eabi_attribute 21, 1
        .eabi_attribute 23, 3
        .eabi_attribute 24, 1
        .eabi_attribute 25, 1
        .eabi_attribute 26, 2
        .eabi_attribute 30, 2
        .eabi_attribute 34, 1
        .arm
        .syntax divided
        .file   "fake.c"
        .text

2nd iteration's .s file begins:
        .cpu armv7-a
        .eabi_attribute 28, 1
        .fpu vfpv3-d16
        .eabi_attribute 20, 1
        .eabi_attribute 21, 1
        .eabi_attribute 23, 3
        .eabi_attribute 24, 1
        .eabi_attribute 25, 1
        .eabi_attribute 26, 2
        .eabi_attribute 30, 2
        .eabi_attribute 34, 1
        .arm
        .syntax divided
        .file   "fake.c"
        .text

Note the changing first line, from:
        .arch armv7-a
to:
        .cpu armv7-a

Am investigating.

Reply via email to