summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--testsuite/mk/boilerplate.mk5
-rw-r--r--testsuite/tests/ghci/linking/Makefile10
-rw-r--r--testsuite/tests/ghci/linking/all.T8
-rw-r--r--testsuite/tests/quasiquotation/Makefile2
-rw-r--r--testsuite/tests/quasiquotation/all.T3
-rw-r--r--testsuite/tests/th/all.T5
6 files changed, 22 insertions, 11 deletions
diff --git a/testsuite/mk/boilerplate.mk b/testsuite/mk/boilerplate.mk
index 41ba2542a6..a2fb56d1ba 100644
--- a/testsuite/mk/boilerplate.mk
+++ b/testsuite/mk/boilerplate.mk
@@ -291,4 +291,9 @@ DARWIN = YES
else
DARWIN = NO
endif
+ifeq "$(HostOS)" "freebsd"
+FREEBSD = YES
+else
+FREEBSD = NO
+endif
diff --git a/testsuite/tests/ghci/linking/Makefile b/testsuite/tests/ghci/linking/Makefile
index 085e81765b..2c71e96cc6 100644
--- a/testsuite/tests/ghci/linking/Makefile
+++ b/testsuite/tests/ghci/linking/Makefile
@@ -24,6 +24,12 @@ else
DLL = lib$1.so
endif
+ifeq "$(FREEBSD)" "YES"
+LIBCXX=c++
+else
+LIBCXX=stdc++
+endif
+
.PHONY: ghcilink002
ghcilink002 :
$(RM) -rf dir002
@@ -38,7 +44,7 @@ ghcilink002 :
.PHONY: ghcilink003
ghcilink003 :
- echo ":q" | "$(TEST_HC)" $(TEST_HC_OPTS_INTERACTIVE) -lstdc++
+ echo ":q" | "$(TEST_HC)" $(TEST_HC_OPTS_INTERACTIVE) -l$(LIBCXX)
# Test 4:
# package P
@@ -115,7 +121,7 @@ ghcilink006 :
ifeq "$(WINDOWS)" "YES"
echo "extra-libraries: stdc++-6" >>$(PKG006)
else
- echo "extra-libraries: stdc++" >>$(PKG006)
+ echo "extra-libraries: $(LIBCXX)" >>$(PKG006)
endif
'$(GHC_PKG)' init $(LOCAL_PKGCONF006)
'$(GHC_PKG)' --no-user-package-db -f $(LOCAL_PKGCONF006) register $(PKG006) -v0
diff --git a/testsuite/tests/ghci/linking/all.T b/testsuite/tests/ghci/linking/all.T
index 79ec5e5f98..743067518f 100644
--- a/testsuite/tests/ghci/linking/all.T
+++ b/testsuite/tests/ghci/linking/all.T
@@ -12,8 +12,8 @@ test('ghcilink002', [extra_files(['TestLink.hs', 'f.c']),
test('ghcilink003',
[unless(doing_ghci, skip),
- # libstdc++ is named differently on FreeBSD
- when(opsys('freebsd'), expect_broken(17739))],
+ # libstdc++ is GCC-specific on FreeBSD
+ when(opsys('freebsd'), fragile(17739))],
makefile_test,
['ghcilink003'])
@@ -32,8 +32,8 @@ test('ghcilink005',
test('ghcilink006',
[unless(doing_ghci, skip),
- # libstdc++ is named differently on FreeBSD
- when(opsys('freebsd'), expect_broken(17739))],
+ # libstdc++ is GCC-specific on FreeBSD
+ when(opsys('freebsd'), fragile(17739))],
makefile_test,
['ghcilink006'])
diff --git a/testsuite/tests/quasiquotation/Makefile b/testsuite/tests/quasiquotation/Makefile
index 76e8a928fb..9a9db1ead9 100644
--- a/testsuite/tests/quasiquotation/Makefile
+++ b/testsuite/tests/quasiquotation/Makefile
@@ -11,5 +11,5 @@ T4150:
T14028:
'$(TEST_HC)' $(TEST_HC_OPTS) -v0 T14028Quote.hs
- '$(TEST_HC)' $(TEST_HC_OPTS) -v0 -c T14028C.c
+ '$(TEST_HC)' $(TEST_HC_OPTS) -v0 -fPIC -c T14028C.c
'$(TEST_HC)' $(TEST_HC_OPTS) -v0 -fexternal-interpreter T14028 T14028C.o
diff --git a/testsuite/tests/quasiquotation/all.T b/testsuite/tests/quasiquotation/all.T
index 0d2fd713cb..e8b3bd1e6f 100644
--- a/testsuite/tests/quasiquotation/all.T
+++ b/testsuite/tests/quasiquotation/all.T
@@ -9,6 +9,5 @@ test('T14028',
[req_interp, req_rts_linker,
only_ways([config.ghc_th_way]),
unless(config.have_ext_interp, skip),
- when(opsys('linux') and arch('arm'), expect_broken_for(17558, ['dyn'])),
- when(opsys('linux') and arch('x86_64'), expect_broken_for(17300, ['dyn']))],
+ when(opsys('freebsd'), expect_broken(19723))],
makefile_test, ['T14028'])
diff --git a/testsuite/tests/th/all.T b/testsuite/tests/th/all.T
index 564649b373..857c9f3659 100644
--- a/testsuite/tests/th/all.T
+++ b/testsuite/tests/th/all.T
@@ -395,8 +395,9 @@ test('T13098', normal, compile, ['-v0'])
test('T11046', normal, multimod_compile, ['T11046','-v0'])
test('T13366',
[expect_broken_for(13366, ['ghci']),
- # libstdc++ is named differently on FreeBSD
- when(opsys('freebsd'), expect_broken(17739)),
+ # libstdc++ is GCC-specific on FreeBSD, the test will
+ # fail with clang, and pass with GCC.
+ when(opsys('freebsd'), fragile(17739)),
when(opsys('darwin'), expect_broken(16083))],
compile_and_run,
['-lstdc++ -v0'])