30 Commits

Author SHA1 Message Date
Frederik Harwath
f9413e1754
[clang][test] Remove duplication from gcc toolchain test (NFC) (#146487)
Changes from Commit 40aab0412fe7a14781e133627c2bb0a22761eac8 "[test]
Migrate -gcc-toolchain with space separator to --gcc-toolchain=" made
two previously different RUN lines equal.

Remove one RUN line.
2025-07-01 16:17:26 +02:00
Alex Brachet
d5ca1602f6 [Driver] Fix test usages of --rtlib= without --unwindlib=
These errors surfaced after D156363. The error
"--rtlib=libgcc requires --unwindlib=libgcc" happens only when
`CLANG_DEFAULT_UNWINDLIB` has been specified at build time.

Differential Revision: https://reviews.llvm.org/D156792
2023-08-01 18:39:40 +00:00
Fangrui Song
5c29ffda90 Revert "[Driver][test] Replace ^//$ with empty string"
This reverts commit 4817b7729a1846b709ec02b98bfe11b0125f8e8f.

It caused some `^/\n` and had some objection about its readability improvement.
2022-06-24 13:52:27 -07:00
Fangrui Song
4817b7729a [Driver][test] Replace ^//$ with empty string
The convention does not add //\n. Having all RUN/CHECK lines separated by //\n
makes editor movement difficult (e.g. { } in Vim).
2022-06-24 11:25:03 -07:00
Fangrui Song
5fadb39e9b [Driver][test] Make some tests work with CLANG_DEFAULT_PIE_ON_LINUX=on
Also delete some cross-linux.c tests which are covered by linux-cross.cpp
2021-12-12 16:28:33 -08:00
Fangrui Song
40aab0412f [test] Migrate -gcc-toolchain with space separator to --gcc-toolchain=
Space separated driver options are uncommon but Clang traditionally
did not do a good job. --gcc-toolchain= is the preferred form.
2021-08-20 15:24:58 -07:00
Fangrui Song
19e45696f5 [Driver] Remove an unneeded multiarch library path which ends with ../../..
Neither vanilla nor Debian GCC has the patch, which usually duplicates $sysroot/usr/lib.
2021-03-27 15:46:06 -07:00
Fangrui Song
c4f65ef78f [test] Add --sysroot= to make gcc-toolchain.cpp stable 2021-03-23 13:32:30 -07:00
Fangrui Song
1fe1e996e9 [test] Delete "-internal-isystem" "/usr/local/include" 2021-03-20 15:24:02 -07:00
Fangrui Song
f628ba0b55 [test] Fix Driver/gcc-toolchain.cpp if CLANG_DEFAULT_RTLIB is compiler-rt 2021-03-20 13:24:49 -07:00
Fangrui Song
e92faa77b4 [test] Fix Driver/gcc-toolchain.cpp if CLANG_DEFAULT_CXX_STDLIB is libc++ 2021-03-20 11:06:44 -07:00
Fangrui Song
dc3b438c8f Revert "Revert "[Driver] Drop obsoleted Ubuntu 11.04 gcc detection""
This reverts commit 243333ef3ec6c1e3910eb442177c2e2e927e6a87.
2021-03-20 09:57:05 -07:00
David Zarzycki
243333ef3e Revert "[Driver] Drop obsoleted Ubuntu 11.04 gcc detection"
This reverts commit bdf39e6b0ed4b41a1842ac0193f30a726f8d9f63.

The change is failing on Fedora 33 (x86-64).
2021-03-20 07:29:01 -04:00
Fangrui Song
bed9933a46 [Driver][test] Fix gcc-toolchain.cpp on non-x86_64 2021-03-19 23:50:22 -07:00
Fangrui Song
bdf39e6b0e [Driver] Drop obsoleted Ubuntu 11.04 gcc detection
It has a very broken gcc installation path (usr/lib/i386-linux-gnu/gcc/i686-linux-gnu).
2021-03-19 23:23:28 -07:00
Fangrui Song
4c2da86410 [Driver] Suppress GCC detection under -B
In GCC, if `-B $prefix` is specified, `$prefix` is used to find executable files and startup files.
`$prefix/include` is added as an include search directory.

Clang overloads -B with GCC installation detection semantics which make the
behavior less predictable (due to the "largest GCC version wins" rule) and
interact poorly with --gcc-toolchain (--gcc-toolchain can be overridden by -B).

* `clang++ foo.cpp` detects GCC installation under `/usr`.
* `clang++ --gcc-toolchain=Inputs foo.cpp` detects GCC installation under `Inputs`.
* `clang++ -BA --gcc-toolchain=B foo.cpp` detects GCC installation under A and B and the larger version wins. With this patch, only B is used for detection.
* `clang++ -BA foo.cpp` detects GCC installation under `A` and `/usr`, and the larger GCC version wins. With this patch `A` is not used for detection.

This patch changes -B to drop the GCC detection semantics.  Its executable
searching semantics are preserved.  --gcc-toolchain is the recommended option to
specify the GCC installation detection directory.

(
Note: Clang detects GCC installation in various target dependent directories.
`$sysroot/usr` (sysroot defaults to "") is a common directory used by most targets.
Such a directory is expected to contain something like `lib{,32,64}/gcc{,-cross}/$triple`.
Clang will then construct library/include paths from the directory.
)

Differential Revision: https://reviews.llvm.org/D97993
2021-03-19 15:42:18 -07:00
Serge Pavlov
4bc0562719 Driver tests: set --sysroot="" to support clang with DEFAULT_SYSROOT
When testing clang that has been compiled with `-DDEFAULT_SYSROOT` set to some path,
some tests would fail. Override sysroot to be empty string for the tests to succeed
when clang is configured with `DEFAULT_SYSROOT`.

Differential Revision: https://reviews.llvm.org/D66834

Patch by Sergej Jaskiewicz <jaskiewiczs@icloud.com>.

llvm-svn: 373147
2019-09-28 12:21:06 +00:00
Jonas Hahnfeld
91924a6f63 tests: Add explicit -stdlib=libstdc++ to tests that require it
This will be needed for the next commit that allows to switch the default
C++ library which would otherwise make these tests fail.

llvm-svn: 260661
2016-02-12 07:48:28 +00:00
Rafael Espindola
49ddb8675b Accept both / and \\ to fix the windows bots.
llvm-svn: 184790
2013-06-24 22:07:15 +00:00
Chandler Carruth
274b6f0c87 Update two options to my proposed syntax for user-facing driver options:
-gcc-toolchain foo  ->  --gcc-toolchain=foo
  -target foo         ->  --target=foo

I've added legacy aliases for the original spellings. I've updated the
canonical tests to check both spellings, and switched all of the
-gcc-toolchain usages elsewhere in the test suite to use the new one.
I've updated some of the usages of -target to the new syntax, but will
finish that in a separate entirely mechanical change once I'm sure this
won't get rolled back for some reason (It touches a *huge* number of RUN
lines in the test suite unsurprisingly).

A nice result is that the three most common flags I end up using when
doing cross compiles are all now consistent: --target=, --sysroot=, and
--gcc-toolchain=.

llvm-svn: 184408
2013-06-20 09:42:40 +00:00
Chandler Carruth
85061b51d2 Skip testing the crtbegin.o, and resume using a single variable for the
prefixes. It seems only crtbegin.o uses the strange formatting.

llvm-svn: 151094
2012-02-21 22:21:50 +00:00
Chandler Carruth
286e0e0818 Clean up, add some documentation, and make this test return to checking
the linker toolchainness a bit more thoroughly. It used to work this
way, but hit buildbot issues. Hopefully subsequent fixes have addressed
those problems, but I'll be watching the bots.

llvm-svn: 151090
2012-02-21 21:51:40 +00:00
Chandler Carruth
4fc5fcd121 Make the regular expressions in this test more narrow to ensure we're
actually matching the write substrings, and stop looking for a leading
'/' to try and finish fixing darwin and other hosts.

llvm-svn: 150938
2012-02-19 23:09:50 +00:00
Rafael Espindola
322d2f4032 Don't check for /lib and /usr/lib.
llvm-svn: 150907
2012-02-19 02:43:03 +00:00
Rafael Espindola
1c4bd44052 Our handling of variables in FileCheck looks really broken on windws. Just
give up on matching the path prefix for the libraries.

llvm-svn: 150906
2012-02-19 02:33:09 +00:00
Rafael Espindola
8c53669a2d Add an extra CHECK line to make sure TOOLCHAIN2 matches just the path
prefix.

llvm-svn: 150905
2012-02-19 02:23:50 +00:00
Rafael Espindola
7c3e065573 Looks like we use forward slashes for header search but back slashes for
libraries on windows. Use two variables to make this test pass.

llvm-svn: 150903
2012-02-19 02:03:47 +00:00
Rafael Espindola
c499573145 Try to match the linker being named ld.exe. Second try at fixing the windows bots.
llvm-svn: 150901
2012-02-19 01:52:23 +00:00
Rafael Espindola
70f2ad1afb Don't assume a path starts with a /. Should fix the windows bot.
llvm-svn: 150900
2012-02-19 01:47:01 +00:00
Rafael Espindola
1af7c219c7 Implement a -gcc-toolchain command line option that does the same as
configure's --with-gcc-toolchain. The configure option is now just a default
value for the command line one.

llvm-svn: 150898
2012-02-19 01:38:32 +00:00