Commit 403bf88c authored by Ben Gamari's avatar Ben Gamari 🐢 Committed by Marge Bot

Revert "[ci/arm/darwin/testsuite] Forwards ports from GHC-8.10"

This reverts commit 0cbdba27.
parent bfe8ef8e
Pipeline #33981 canceled with stages
in 35 seconds
......@@ -393,42 +393,11 @@ lint-compiler:
variables:
TEST_TYPE: test
MAKE_ARGS: "-Werror"
script: |
# Build hyperlinked sources for documentation when building releases
if [[ "$RELEASE_JOB" = "yes" ]]; then
HADDOCK_HYPERLINKED_SOURCES=1
fi
TIME_START=$(date +%s)
time .gitlab/ci.sh setup 2>&1
TIME_SETUP=$(date +%s)
TIME_SETUP_DELTA=$(expr $TIME_SETUP - $TIME_START)
echo "Setup took $TIME_SETUP_DELTA seconds"
time .gitlab/ci.sh configure 2>&1
TIME_CONFIGURE=$(date +%s)
TIME_CONFIGURE_DELTA=$(expr $TIME_CONFIGURE - $TIME_SETUP)
echo "Configure took $TIME_CONFIGURE_DELTA seconds"
time .gitlab/ci.sh build_make 2>&1
TIME_BUILD=$(date +%s)
TIME_BUILD_DELTA=$(expr $TIME_BUILD - $TIME_CONFIGURE)
echo "Build took $TIME_BUILD_DELTA seconds"
set +e
time .gitlab/ci.sh test_make 2>&1
status=$?
set -e
TIME_TEST=$(date +%s)
TIME_TEST_DELTA=$(expr $TIME_TEST - $TIME_BUILD)
echo "Test took $TIME_TEST_DELTA seconds"
echo "=== TIMINGS ==="
echo "Setup | $TIME_SETUP_DELTA"
echo "Configure | $TIME_CONFIGURE_DELTA"
echo "Build | $TIME_BUILD_DELTA"
echo "Test | $TIME_TEST_DELTA"
exit $status
script:
- .gitlab/ci.sh setup
- .gitlab/ci.sh configure
- .gitlab/ci.sh build_make
- .gitlab/ci.sh test_make
dependencies: []
artifacts:
reports:
......@@ -522,13 +491,10 @@ release-x86_64-freebsd:
validate-x86_64-darwin:
extends: .validate
needs: [validate-x86_64-linux-deb9-hadrian]
stage: full-build
tags:
- x86_64-darwin-m1
# for now make this non mandatory to pass.
allow_failure: true
- x86_64-darwin
variables:
GHC_VERSION: 8.10.4
CABAL_INSTALL_VERSION: 3.2.0.0
......@@ -538,15 +504,7 @@ validate-x86_64-darwin:
ac_cv_func_clock_gettime: "no"
# Only newer OS Xs support utimensat. See #17895
ac_cv_func_utimensat: "no"
TEST_TYPE: test
MAKE_ARGS: "-Werror"
# we run on M1's for now, getconf can't be built with nix yet,
# and we use a pure shell, so we can't/shouldn't use /usr/bin/getconf
# inside th shell.
CPUS: 8
LANG: "en_US.UTF-8"
# WARNING: this is overridden in the shell.nix, see shell.nix!
CONFIGURE_ARGS: "--with-intree-gmp"
TEST_ENV: "x86_64-darwin"
BUILD_FLAVOUR: "validate"
......@@ -555,149 +513,11 @@ validate-x86_64-darwin:
after_script:
- cp -Rf $HOME/.cabal cabal-cache
- .gitlab/ci.sh clean
# I wish we could just use the nix #! logic, but we can't --run and -i bash
# behave very differently. -i bash does not pass any nix related env vars
# the whole $stdenv/setup part seems to be missing.
script: |
set -Eeuo pipefail
function runInNixShell() {
time nix-shell .gitlab/shell.nix \
-I nixpkgs=https://github.com/angerman/nixpkgs/archive/75f7281738b.tar.gz \
--argstr system "x86_64-darwin" \
--pure \
--keep GHC_VERSION --keep CABAL_INSTALL_VERSION --keep BUILD_FLAVOUR \
--keep BIN_DIST_PREP_TAR_COMP --keep CPUS --keep PROJECT_DIR \
--keep CI_PROJECT_DIR --keep MAKE_ARGS \
--keep LANG --keep CONFIGURE_ARGS \
--keep MACOSX_DEPLOYMENT_TARGET --keep ac_cv_func_clock_gettime \
--run "$1" 2>&1
}
# fix up config.sub in libraries for the time.
# aarch64-darwin is not supported in older config.sub's
TIME_START=$(date +%s)
find libraries -name config.sub -exec cp config.sub {} \;
runInNixShell ".gitlab/ci.sh setup" 2>&1
TIME_SETUP=$(date +%s)
TIME_SETUP_DELTA=$(expr $TIME_SETUP - $TIME_START)
echo "Setup took $TIME_SETUP_DELTA seconds"
runInNixShell ".gitlab/ci.sh configure" 2>&1
TIME_CONFIGURE=$(date +%s)
TIME_CONFIGURE_DELTA=$(expr $TIME_CONFIGURE - $TIME_SETUP)
echo "Configure took $TIME_CONFIGURE_DELTA seconds"
runInNixShell ".gitlab/ci.sh build_make" 2>&1
TIME_BUILD=$(date +%s)
TIME_BUILD_DELTA=$(expr $TIME_BUILD - $TIME_CONFIGURE)
echo "Build took $TIME_BUILD_DELTA seconds"
set +e
runInNixShell ".gitlab/ci.sh test_make" 2>&1
status=$?
set -e
TIME_TEST=$(date +%s)
TIME_TEST_DELTA=$(expr $TIME_TEST - $TIME_BUILD)
echo "Test took $TIME_TEST_DELTA seconds"
echo "=== TIMINGS ==="
echo "Setup | $TIME_SETUP_DELTA"
echo "Configure | $TIME_CONFIGURE_DELTA"
echo "Build | $TIME_BUILD_DELTA"
echo "Test | $TIME_TEST_DELTA"
exit $status
artifacts:
when: always
expire_in: 2 week
cache:
key: "darwin-x86_64-$GHC_VERSION"
paths:
- cabal-cache
- toolchain
validate-aarch64-darwin:
extends: .validate
stage: full-build
tags:
- aarch64-darwin-m1
# for now make this non mandatory to pass.
allow_failure: true
variables:
TEST_TYPE: test
MAKE_ARGS: "-Werror"
GHC_VERSION: 8.10.3
CABAL_INSTALL_VERSION: 3.2.0.0
BUILD_FLAVOUR: "perf"
BIN_DIST_PREP_TAR_COMP: "ghc-arm64-apple-darwin.tar.xz"
# we run on M1's for now, getconf can't be built with nix yet,
# and we use a pure shell, so we can't/shouldn't use /usr/bin/getconf
# inside th shell.
CPUS: 8
LANG: "en_US.UTF-8"
# WARNING: this is overridden in the shell.nix, see shell.nix!
CONFIGURE_ARGS: "--with-intree-gmp"
# I wish we could just use the nix #! logic, but we can't --run and -i bash
# behave very differently. -i bash does not pass any nix related env vars
# the whole $stdenv/setup part seems to be missing.
script: |
set -Eeuo pipefail
function runInNixShell() {
time nix-shell .gitlab/shell.nix \
-I nixpkgs=https://github.com/angerman/nixpkgs/archive/75f7281738b.tar.gz \
--argstr system "aarch64-darwin" \
--pure \
--keep GHC_VERSION --keep CABAL_INSTALL_VERSION --keep BUILD_FLAVOUR \
--keep BIN_DIST_PREP_TAR_COMP --keep CPUS --keep PROJECT_DIR \
--keep CI_PROJECT_DIR --keep MAKE_ARGS \
--keep LANG --keep CONFIGURE_ARGS \
--run "$1" 2>&1
}
# fix up config.sub in libraries for the time.
# aarch64-darwin is not supported in older config.sub's
TIME_START=$(date +%s)
find libraries -name config.sub -exec cp config.sub {} \;
time runInNixShell ".gitlab/ci.sh setup" 2>&1
TIME_SETUP=$(date +%s)
TIME_SETUP_DELTA=$(expr $TIME_SETUP - $TIME_START)
echo "Setup took $TIME_SETUP_DELTA seconds"
runInNixShell ".gitlab/ci.sh configure" 2>&1
TIME_CONFIGURE=$(date +%s)
TIME_CONFIGURE_DELTA=$(expr $TIME_CONFIGURE - $TIME_SETUP)
echo "Setup took $TIME_CONFIGURE_DELTA seconds"
runInNixShell ".gitlab/ci.sh build_make" 2>&1
TIME_BUILD=$(date +%s)
TIME_BUILD_DELTA=$(expr $TIME_BUILD - $TIME_CONFIGURE)
echo "Build took $TIME_BUILD_DELTA seconds"
set +e
runInNixShell ".gitlab/ci.sh test_make" 2>&1
status=$?
set -e
TIME_TEST=$(date +%s)
TIME_TEST_DELTA=$(expr $TIME_TEST - $TIME_BUILD)
echo "Test took $TIME_TEST_DELTA seconds"
echo "=== TIMINGS ==="
echo "Setup | $TIME_SETUP_DELTA"
echo "Configure | $TIME_CONFIGURE_DELTA"
echo "Build | $TIME_BUILD_DELTA"
echo "Test | $TIME_TEST_DELTA"
exit $status
artifacts:
when: always
expire_in: 2 week
cache:
key: "darwin-aarch64-$GHC_VERSION"
key: "darwin-$GHC_VERSION"
paths:
- cabal-cache
- toolchain
......
......@@ -3,7 +3,9 @@
# This is the primary driver of the GitLab CI infrastructure.
# Run `ci.sh usage` for usage information.
set -Eeuo pipefail
set -e -o pipefail
# Configuration:
HACKAGE_INDEX_STATE="2020-12-21T14:48:20Z" # TODO dedup with yaml's def
......@@ -171,18 +173,12 @@ function show_tool() {
function set_toolchain_paths() {
needs_toolchain="1"
case "$(uname -m)-$(uname)" in
*-Linux) needs_toolchain="" ;;
case "$(uname)" in
Linux) needs_toolchain="0" ;;
*) ;;
esac
if [[ -n "${IN_NIX_SHELL:-}" ]]; then
needs_toolchain=""
GHC="$(which ghc)"
CABAL="$(which cabal)"
HAPPY="$(which happy)"
ALEX="$(which alex)"
elif [[ -n "$needs_toolchain" ]]; then
if [[ "$needs_toolchain" = "1" ]]; then
# These are populated by setup_toolchain
GHC="$toolchain/bin/ghc$exe"
CABAL="$toolchain/bin/cabal$exe"
......@@ -358,7 +354,7 @@ BUILD_SPHINX_HTML=$BUILD_SPHINX_HTML
BUILD_SPHINX_PDF=$BUILD_SPHINX_PDF
BeConservative=YES
BIGNUM_BACKEND=$BIGNUM_BACKEND
XZ_CMD=${XZ:-}
XZ_CMD=$XZ
BuildFlavour=$BUILD_FLAVOUR
ifneq "\$(BuildFlavour)" ""
......@@ -367,7 +363,7 @@ endif
GhcLibHcOpts+=-haddock
EOF
if [ -n "${HADDOCK_HYPERLINKED_SOURCES:-}" ]; then
if [ -n "$HADDOCK_HYPERLINKED_SOURCES" ]; then
echo "EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump" >> mk/build.mk
fi
......@@ -386,7 +382,7 @@ function configure() {
end_section "booting"
local target_args=""
if [[ -n "${target_triple:-}" ]]; then
if [[ -n "$target_triple" ]]; then
target_args="--target=$target_triple"
fi
......@@ -394,7 +390,7 @@ function configure() {
run ./configure \
--enable-tarballs-autodownload \
$target_args \
${CONFIGURE_ARGS:-} \
$CONFIGURE_ARGS \
GHC="$GHC" \
HAPPY="$HAPPY" \
ALEX="$ALEX" \
......@@ -407,10 +403,10 @@ function build_make() {
if [[ -z "$BIN_DIST_PREP_TAR_COMP" ]]; then
fail "BIN_DIST_PREP_TAR_COMP is not set"
fi
if [[ -n "${VERBOSE:-}" ]]; then
MAKE_ARGS="${MAKE_ARGS:-} V=1"
if [[ -n "$VERBOSE" ]]; then
MAKE_ARGS="$MAKE_ARGS V=1"
else
MAKE_ARGS="${MAKE_ARGS:-} V=0"
MAKE_ARGS="$MAKE_ARGS V=0"
fi
echo "include mk/flavours/${BUILD_FLAVOUR}.mk" > mk/build.mk
......@@ -426,7 +422,7 @@ function fetch_perf_notes() {
}
function push_perf_notes() {
if [ -n "${CROSS_TARGET:-}" ]; then
if [ -n "$CROSS_TARGET" ]; then
info "Can't test cross-compiled build."
return
fi
......@@ -443,16 +439,16 @@ function determine_metric_baseline() {
}
function test_make() {
if [ -n "${CROSS_TARGET:-}" ]; then
if [ -n "$CROSS_TARGET" ]; then
info "Can't test cross-compiled build."
return
fi
run "$MAKE" test_bindist TEST_PREP=YES
run "$MAKE" V=0 VERBOSE=1 test \
run "$MAKE" V=0 test \
THREADS="$cores" \
JUNIT_FILE=../../junit.xml \
EXTRA_RUNTEST_OPTS="${RUNTEST_ARGS:-}"
EXTRA_RUNTEST_OPTS="$RUNTEST_ARGS"
}
function build_hadrian() {
......@@ -466,7 +462,7 @@ function build_hadrian() {
}
function test_hadrian() {
if [ -n "${CROSS_TARGET:-}" ]; then
if [ -n "$CROSS_TARGET" ]; then
info "Can't test cross-compiled build."
return
fi
......@@ -480,7 +476,7 @@ function test_hadrian() {
test \
--summary-junit=./junit.xml \
--test-compiler="$TOP"/_build/install/bin/ghc \
"runtest.opts+=${RUNTEST_ARGS:-}"
"runtest.opts+=$RUNTEST_ARGS"
}
function cabal_test() {
......@@ -521,14 +517,14 @@ function run_hadrian() {
if [ -z "$BUILD_FLAVOUR" ]; then
fail "BUILD_FLAVOUR not set"
fi
if [ -z "${BIGNUM_BACKEND:-}" ]; then BIGNUM_BACKEND="gmp"; fi
if [ -n "${VERBOSE:-}" ]; then HADRIAN_ARGS="${HADRIAN_ARGS:-} -V"; fi
if [ -z "$BIGNUM_BACKEND" ]; then BIGNUM_BACKEND="gmp"; fi
if [ -n "$VERBOSE" ]; then HADRIAN_ARGS="$HADRIAN_ARGS -V"; fi
run hadrian/build-cabal \
--flavour="$BUILD_FLAVOUR" \
-j"$cores" \
--broken-test="${BROKEN_TESTS:-}" \
--broken-test="$BROKEN_TESTS" \
--bignum=$BIGNUM_BACKEND \
${HADRIAN_ARGS:-} \
$HADRIAN_ARGS \
$@
}
......@@ -564,7 +560,7 @@ case "$(uname)" in
*) fail "uname $(uname) is not supported" ;;
esac
if [ -n "${CROSS_TARGET:-}" ]; then
if [ -n "$CROSS_TARGET" ]; then
info "Cross-compiling for $CROSS_TARGET..."
target_triple="$CROSS_TARGET"
fi
......
{ system ? "aarch64-darwin"
#, nixpkgs ? fetchTarball https://github.com/angerman/nixpkgs/archive/257cb120334.tar.gz #apple-silicon.tar.gz
, pkgs ? import <nixpkgs> { inherit system; }
, compiler ? if system == "aarch64-darwin" then "ghc8103Binary" else "ghc8103"
}: pkgs.mkShell {
# this prevents nix from trying to write the env-vars file.
# we can't really, as NIX_BUILD_TOP/env-vars is not set.
noDumpEnvVars=1;
# stop polluting LDFLAGS with -liconv
dontAddExtraLibs = true;
# we need to inject ncurses into --with-curses-libraries.
# the real fix is to teach terminfo to use libcurses on macOS.
CONFIGURE_ARGS = "--with-intree-gmp --with-curses-libraries=${pkgs.ncurses.out}/lib";
# magic speedup pony :facepalm:
#
# nix has the ugly habbit of duplicating ld flags more than necessary. This
# somewhat consolidates this.
shellHook = ''
export NIX_LDFLAGS=$(for a in $NIX_LDFLAGS; do echo $a; done |sort|uniq|xargs)
export NIX_LDFLAGS_FOR_TARGET=$(for a in $NIX_LDFLAGS_FOR_TARGET; do echo $a; done |sort|uniq|xargs)
export NIX_LDFLAGS_FOR_TARGET=$(comm -3 <(for l in $NIX_LDFLAGS_FOR_TARGET; do echo $l; done) <(for l in $NIX_LDFLAGS; do echo $l; done))
'';
nativeBuildInputs = (with pkgs; [
haskell.compiler.${compiler}
haskell.packages.${compiler}.cabal-install
haskell.packages.${compiler}.alex
haskell.packages.${compiler}.happy # _1_19_12 is needed for older GHCs.
clang_11
llvm_11
automake
autoconf
m4
gmp
ncurses
libiconv
zlib.out
zlib.dev
glibcLocales
# locale doesn't build yet :-/
# locale
git
python3
# python3Full
# python3Packages.sphinx
perl
which
wget
file
xz
xlibs.lndir
cacert ])
++ (with pkgs.darwin.apple_sdk.frameworks; [ Foundation Security ]);
}
......@@ -13,8 +13,9 @@
# $1 = paths to prepend
ifeq "$(TargetOS_CPP)" "mingw32"
prependLibraryPath = $(error Do not know how to prependLibraryPath on Windows)
else ifneq "$(TargetOS_CPP)" "darwin"
prependLibraryPath = export LD_LIBRARY_PATH="$1$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}"
else ifeq "$(TargetOS_CPP)" "darwin"
prependLibraryPath = export DYLD_LIBRARY_PATH="$1$${DYLD_LIBRARY_PATH:+:$$DYLD_LIBRARY_PATH}"
else
prependLibraryPath =
prependLibraryPath = export LD_LIBRARY_PATH="$1$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}"
endif
......@@ -29,9 +29,7 @@ def get_cpu_features():
return flags
elif config.os == 'darwin':
# we hardcode the sysctl path, otherwise we rely on /usr/sbin being in
# path.
out = subprocess.check_output(['/usr/sbin/sysctl', 'hw']).decode('UTF-8')
out = subprocess.check_output(['sysctl', 'hw']).decode('UTF-8')
features = set()
def check_feature(darwin_name, our_name=None):
if re.search(r'hw\.optional.%s:\s*1' % darwin_name, out) is not None:
......@@ -68,3 +66,4 @@ if __name__ == '__main__':
import sys
config.os = sys.argv[1]
print(get_cpu_features())
......@@ -266,7 +266,7 @@ def format_path(path):
# On Windows we need to set $PATH to include the paths to all the DLLs
# in order for the dynamic library tests to work.
if windows:
if windows or darwin:
pkginfo = getStdout([config.ghc_pkg, 'dump'])
topdir = config.libdir
if windows:
......@@ -284,9 +284,12 @@ if windows:
if path.startswith('"'):
path = re.sub('^"(.*)"$', '\\1', path)
path = re.sub('\\\\(.)', '\\1', path)
if windows:
path = format_path(path)
ghc_env['PATH'] = os.pathsep.join([path, ghc_env.get("PATH", "")])
else:
# darwin
ghc_env['DYLD_LIBRARY_PATH'] = os.pathsep.join([path, ghc_env.get("DYLD_LIBRARY_PATH", "")])
testopts_local.x = TestOptions()
......
......@@ -1794,10 +1794,9 @@ def interpreter_run(name: TestName,
# check the exit code
if exit_code != getTestOpts().exit_code:
if config.verbose >= 1 and _expect_pass(way):
print('Wrong exit code for ' + name + '(' + way + ') (expected', getTestOpts().exit_code, ', actual', exit_code, ')')
dump_stdout(name)
dump_stderr(name)
print('Wrong exit code for ' + name + '(' + way + ') (expected', getTestOpts().exit_code, ', actual', exit_code, ')')
dump_stdout(name)
dump_stderr(name)
message = format_bad_exit_code_message(exit_code)
return failBecause(message,
stderr=read_stderr(name),
......@@ -2222,16 +2221,9 @@ def normalise_errmsg(s: str) -> str:
# and not understood by older binutils (ar, ranlib, ...)
s = modify_lines(s, lambda l: re.sub('^(.+)warning: (.+): unsupported GNU_PROPERTY_TYPE \(5\) type: 0xc000000(.*)$', '', l))
s = re.sub('ld: warning: passed .* min versions \(.*\) for platform macOS. Using [\.0-9]+.','',s)
s = re.sub('ld: warning: -sdk_version and -platform_version are not compatible, ignoring -sdk_version','',s)
# ignore superfluous dylibs passed to the linker.
s = re.sub('ld: warning: .*, ignoring unexpected dylib file\n','',s)
# ignore LLVM Version mismatch garbage; this will just break tests.
s = re.sub('You are using an unsupported version of LLVM!.*\n','',s)
s = re.sub('Currently only [\.0-9]+ is supported. System LLVM version: [\.0-9]+.*\n','',s)
s = re.sub('We will try though\.\.\..*\n','',s)
# ignore warning about strip invalidating signatures
s = re.sub('.*strip: changes being made to the file will invalidate the code signature in.*\n','',s)
# filter out nix garbage, that just keeps on showing up as errors on darwin
s = modify_lines(s, lambda l: re.sub('^(.+)\.dylib, ignoring unexpected dylib file$','', l))
return s
# normalise a .prof file, so that we can reasonably compare it against
......@@ -2305,17 +2297,6 @@ def normalise_output( s: str ) -> str:
# ghci outputs are pretty unstable with -fexternal-dynamic-refs, which is
# requires for -fPIC
s = re.sub(' -fexternal-dynamic-refs\n','',s)
s = re.sub('ld: warning: passed .* min versions \(.*\) for platform macOS. Using [\.0-9]+.','',s)
s = re.sub('ld: warning: -sdk_version and -platform_version are not compatible, ignoring -sdk_version','',s)
# ignore superfluous dylibs passed to the linker.
s = re.sub('ld: warning: .*, ignoring unexpected dylib file\n','',s)
# ignore LLVM Version mismatch garbage; this will just break tests.
s = re.sub('You are using an unsupported version of LLVM!.*\n','',s)
s = re.sub('Currently only [\.0-9]+ is supported. System LLVM version: [\.0-9]+.*\n','',s)
s = re.sub('We will try though\.\.\..*\n','',s)
# ignore warning about strip invalidating signatures
s = re.sub('.*strip: changes being made to the file will invalidate the code signature in.*\n','',s)
return s
def normalise_asm( s: str ) -> str:
......
......@@ -5,8 +5,6 @@
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
// stdlib is needed for exit()
#include <stdlib.h>
#if mingw32_HOST_OS
#include <windows.h>
#else
......
......@@ -121,8 +121,7 @@ else:
only_darwin = skip
test('static001', [extra_files(['Static001.hs']),
only_darwin,
when(arch('x86_64'), expect_broken(8127))],
only_darwin, expect_broken(8127)],
makefile_test, ['static001'])
test('dynHelloWorld',
......@@ -261,12 +260,8 @@ test('T12955', normal, makefile_test, [])
test('T12971', [when(opsys('mingw32'), fragile(17945)), ignore_stdout], makefile_test, [])
test('json', normal, compile_fail, ['-ddump-json'])
# json2 test is sensitive to the LLVM not supported ouput from GHC. ANd the error
# won't tell. It looks unrelated and is annoying to debug. Hence we disable the
# warning to prevent spurious errors.
test('json2', normalise_version('base','ghc-prim'), compile, ['-ddump-types -ddump-json -Wno-unsupported-llvm-version'])
test('T16167', exit_code(1), run_command,
test('json2', normalise_version('base','ghc-prim'), compile, ['-ddump-types -ddump-json'])
test('T16167', exit_code(1), run_command,
['{compiler} -x hs -e ":set prog T16167.hs" -ddump-json T16167.hs'])
test('T13604', [], makefile_test, [])
test('T13604a', [], makefile_test, [])
......
......@@ -11,12 +11,11 @@ test('ghcilink002', [extra_files(['TestLink.hs', 'f.c']),
makefile_test, ['ghcilink002'])
test('ghcilink003',
[ unless(doing_ghci, skip),
# libstdc++ is named differently on FreeBSD
when(opsys('freebsd'), expect_broken(17739)),
when(opsys('darwin'), fragile(16083))
], makefile_test, ['ghcilink003'])
[unless(doing_ghci, skip),
# libstdc++ is named differently on FreeBSD
when(opsys('freebsd'), expect_broken(17739))],
makefile_test,
['ghcilink003'])
test('ghcilink004',
[extra_files(['TestLink.hs', 'f.c']),
......@@ -32,11 +31,11 @@ test('ghcilink005',
makefile_test, ['ghcilink005'])
test('ghcilink006',
[ unless(doing_ghci, skip),
# libstdc++ is named differently on FreeBSD
when(opsys('freebsd'), expect_broken(17739)),
when(opsys('darwin'), fragile(16083))
], makefile_test, ['ghcilink006'])
[unless(doing_ghci, skip),
# libstdc++ is named differently on FreeBSD
when(opsys('freebsd'), expect_broken(17739))],
makefile_test,
['ghcilink006'])
test('T3333',
[unless(doing_ghci, skip),
......
......@@ -328,3 +328,4 @@ test('T19197', normal, ghci_script, ['T19197.script'])
test('T19158', normal