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

--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Thomas Schwinge <tschwi...@gcc.gnu.org>:

https://gcc.gnu.org/g:4ab02a7b26b1845de1e61d8145678da7215442fa

commit r15-5962-g4ab02a7b26b1845de1e61d8145678da7215442fa
Author: Thomas Schwinge <tschwi...@baylibre.com>
Date:   Wed Dec 4 22:37:17 2024 +0100

    nvptx: Tag '-misa=[...]', '-mptx=[...]' as 'Negative' of themselves
[PR117916]

    This issue is similar to what a year ago I resolved for GCN in PR112669
    "GCN: wrong 'LIBRARY_PATH' in presence of several different '-march=[...]'
flags".

    Given the current standard nvptx configuration, we get:

        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory
-mptx=6.3
        .
        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory
-mptx=3.1
        mptx-3.1

    ... as expected.  The following, however, is not:

        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory
-mptx=3.1 -mptx=6.3
        mptx-3.1

    This should print '.'.

    Or, in a '--with-arch=sm_70' configuration:

        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory
-misa=sm_70
        .
        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory
-misa=sm_30
        misa-sm_30

    ... as expected.  The following, however, are not:

        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory
-misa=sm_30 -misa=sm_70
        misa-sm_30
        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory
-misa=sm_30 -march=sm_70
        misa-sm_30
        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory
-march=sm_30 -march=sm_70
        misa-sm_30
        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory
-march=sm_30 -misa=sm_70
        misa-sm_30

    These should all print '.'.

    Even worse:

        $ build-gcc-offload-nvptx-none/gcc/xgcc -print-multi-directory -mgomp
-mptx=3.1 -mptx=_
        .

    This should print 'mgomp'.  Otherwise, for OpenMP offloading compilation
    the wrong (non-'mgomp') multilib is linked in ('.'), and linking fails
    due to 'unresolved symbol __nvptx_uni'.

            PR target/117916
            gcc/
            * config/nvptx/nvptx.opt (misa=, mptx=): Tag as 'Negative' of
            themselves.

Reply via email to