meson/mesonbuild/compilers/mixins
Eli Schwartz 2fbc7b5ce3
Revert "clike: Deduplicate rpath linker flags"
This reverts commit 53ea59ad84.

This breaks at least:
- frameworks/17 mpi
- frameworks/30 scalapack

The problem is that openmpi's pkg-config emitted link arguments
includes:

```
-Wl,-rpath -Wl,/path/to/libdir
```

The deduplication logic in meson doesn't contain sufficient information
to tell when the compiler is passing an argument that requires values,
and definitely cannot tell when that argument is split across argv. But
for arguments that *can* do this, it is not possible to deduplicate a
single argument as standalone, because it is not standalone.

The argument for deduplicating rpath here was that if you have multiple
dependencies that all add the same rpath, the Apple ld64 emits a
non-fatal warning "duplicate -rpath ignored". Since this is non-fatal,
it's not a major issue. A major issue is when builds fatally error out
with:

```
FAILED: scalapack_c
cc  -o scalapack_c scalapack_c.p/main.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group /usr/lib64/libscalapack.so /usr/lib64/liblapack.so /usr/lib64/libblas.so -Wl,-rpath -Wl,/usr/lib64 -Wl,/usr/lib64 -Wl,--enable-new-dtags /usr/lib64/libmpi.so -Wl,--end-group
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: error: /usr/lib64: read: Is a directory
```
2023-12-26 18:09:34 -05:00
..
__init__.py compilers: Move clike into a mixins directory 2019-07-15 10:59:22 -07:00
arm.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
ccrx.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
clang.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
clike.py Revert "clike: Deduplicate rpath linker flags" 2023-12-26 18:09:34 -05:00
compcert.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
elbrus.py compilers/elbrus: wrap get_default_include_dirs with lru_cache 2023-12-23 00:31:53 -08:00
emscripten.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
gnu.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
intel.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
islinker.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
metrowerks.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
pgi.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
ti.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
visualstudio.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00
xc16.py Remove `get_buildtype_args` function 2023-12-23 13:32:49 +02:00