Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
-
a0d6f1f4
by Simon Jakobi at 2026-04-16T13:29:28-04:00
6 changed files:
- + testsuite/tests/ghci/T9074/Makefile
- + testsuite/tests/ghci/T9074/T9074.hs
- + testsuite/tests/ghci/T9074/T9074.stdout
- + testsuite/tests/ghci/T9074/T9074a.c
- + testsuite/tests/ghci/T9074/T9074b.c
- + testsuite/tests/ghci/T9074/all.T
Changes:
| 1 | +TOP=../../..
|
|
| 2 | +include $(TOP)/mk/boilerplate.mk
|
|
| 3 | +include $(TOP)/mk/test.mk
|
|
| 4 | + |
|
| 5 | +.PHONY: T9074
|
|
| 6 | +T9074 :
|
|
| 7 | + "$(TEST_HC)" $(TEST_HC_OPTS) -v0 -c -fPIC T9074b.c
|
|
| 8 | + "$(TEST_HC)" $(TEST_HC_OPTS) -v0 -c -fPIC T9074a.c
|
|
| 9 | + # Historically, loading T9074b.o before T9074a.o could fail with
|
|
| 10 | + # "Loading temp shared object failed ... undefined symbol: shared_value".
|
|
| 11 | + echo "main" | "$(TEST_HC)" $(TEST_HC_OPTS_INTERACTIVE) \
|
|
| 12 | + -v0 T9074b.o T9074a.o T9074.hs |
| 1 | +{-# LANGUAGE ForeignFunctionInterface #-}
|
|
| 2 | + |
|
| 3 | +foreign import ccall unsafe "read_from_b" readFromB :: IO Int
|
|
| 4 | + |
|
| 5 | +main :: IO ()
|
|
| 6 | +main = readFromB >>= print |
| 1 | +65 |
| 1 | +int shared_value = 65; |
| 1 | +extern int shared_value;
|
|
| 2 | + |
|
| 3 | +int read_from_b(void) {
|
|
| 4 | + return shared_value;
|
|
| 5 | +} |
| 1 | +test('T9074',
|
|
| 2 | + [req_c,
|
|
| 3 | + req_interp],
|
|
| 4 | + makefile_test, []) |