]> gcc.gnu.org Git - gcc.git/commit
nvptx: In 'STARTFILE_SPEC', fix 'crt0.o' for '-mmainkernel'
authorThomas Schwinge <thomas@codesourcery.com>
Fri, 18 Nov 2022 22:57:52 +0000 (23:57 +0100)
committerThomas Schwinge <thomas@codesourcery.com>
Sat, 19 Nov 2022 14:43:05 +0000 (15:43 +0100)
commit3180cd7383af2fa4188c59da289bbddb095177c2
treea906dc6aef1b45f98f5aef00478c343b25d1a0d6
parent1bfdef41ed7ae507823047663fb4305c57b1717b
nvptx: In 'STARTFILE_SPEC', fix 'crt0.o' for '-mmainkernel'

A recent nvptx-tools change: commit 886a95faf66bf66a82fc0fe7d2a9fd9e9fec2820
"ld: Don't search for input files in '-L'directories" (of
<https://github.com/MentorEmbedded/nvptx-tools/pull/38>
"Match standard 'ld' "search" behavior") in GCC/nvptx target testing
generally causes linking to fail with:

    error opening crt0.o
    collect2: error: ld returned 1 exit status
    compiler exited with status 1

Indeed per GCC '-v' output, there is an undecorated 'crt0.o' on the linker
('collect2') command line:

     [...]/build-gcc/./gcc/collect2 -o [...] crt0.o [...]

This is due to:

    gcc/config/nvptx/nvptx.h:#define STARTFILE_SPEC "%{mmainkernel:crt0.o}"

..., and the fix, as used by numerous other GCC targets, is to instead use
'crt0.o%s'; for '%s' means, per 'gcc/gcc.cc', "The Specs Language":

     %s     current argument is the name of a library or startup file of some sort.
            Search for that file in a standard list of directories
            and substitute the full name found.

With that, we get the expected path to 'crt0.o'.

gcc/
* config/nvptx/nvptx.h (STARTFILE_SPEC): Fix 'crt0.o' for
'-mmainkernel'.

(cherry picked from commit dda43e1ef0c9f6c32ad022d3a08ce7651e42a129)
gcc/config/nvptx/nvptx.h
This page took 0.070299 seconds and 6 git commands to generate.