hadrian/ghci broken on master when bootstrapping with 9.0.1
If you attempt to run hadrian/ghci
in a clean checkout of GHC, it will fail thusly:
$ cp mk/build.mk.sample mk/build.mk
$ ./boot
libraries/base/
libraries/libiserv/
libraries/template-haskell/
libraries/parsec/
libraries/doc/
libraries/unix/
libraries/process/
libraries/containers/
libraries/pretty/
libraries/ghc-bignum/
libraries/mtl/
libraries/filepath/
libraries/transformers/
libraries/haskeline/
libraries/deepseq/
libraries/time/
libraries/xhtml/
libraries/ghc-boot-th/
libraries/binary/
libraries/exceptions/
libraries/ghc-heap/
libraries/ghc-compact/
libraries/ghc-boot/
libraries/ghc-prim/
libraries/Win32/
libraries/integer-gmp/
libraries/text/
libraries/Cabal/
libraries/hpc/
libraries/array/
libraries/terminfo/
libraries/directory/
libraries/ghci/
libraries/bytestring/
libraries/stm/
Creating libraries/base/ghc.mk
Creating libraries/libiserv/ghc.mk
Creating libraries/template-haskell/ghc.mk
Creating libraries/parsec/ghc.mk
Creating libraries/unix/ghc.mk
Creating libraries/process/ghc.mk
Skipping libraries/containers/containers/ghc.mk which already exists
Creating libraries/pretty/ghc.mk
Creating libraries/ghc-bignum/ghc.mk
Creating libraries/mtl/ghc.mk
Creating libraries/filepath/ghc.mk
Creating libraries/transformers/ghc.mk
Creating libraries/haskeline/ghc.mk
Creating libraries/deepseq/ghc.mk
Creating libraries/time/ghc.mk
Creating libraries/xhtml/ghc.mk
Creating libraries/ghc-boot-th/ghc.mk
Creating libraries/binary/ghc.mk
Creating libraries/exceptions/ghc.mk
Creating libraries/ghc-heap/ghc.mk
Creating libraries/ghc-compact/ghc.mk
Skipping libraries/ghc-boot/ghc.mk which already exists
Creating libraries/ghc-prim/ghc.mk
Creating libraries/Win32/ghc.mk
Creating libraries/integer-gmp/ghc.mk
Creating libraries/text/ghc.mk
Creating libraries/Cabal/Cabal/ghc.mk
Creating libraries/hpc/ghc.mk
Creating libraries/array/ghc.mk
Creating libraries/terminfo/ghc.mk
Creating libraries/directory/ghc.mk
Creating libraries/ghci/ghc.mk
Creating libraries/bytestring/ghc.mk
Creating libraries/stm/ghc.mk
Booting .
Booting libraries/base/
Booting libraries/unix/
Booting libraries/process/
Booting libraries/ghc-bignum/
Booting libraries/time/
Booting libraries/terminfo/
Booting libraries/directory/
$ ./configure
checking for gfind... no
checking for find... /usr/bin/find
checking for sort... /usr/bin/sort
checking for GHC version date... inferred 9.1.20210310
checking for GHC Git commit id... inferred 8a59f49ae2204dbf58ef50ea8c0a50ee2c7aa64a
checking for ghc... /opt/ghc/9.0.1/bin/ghc
checking version of ghc... 9.0.1
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
Build platform inferred as: x86_64-unknown-linux
Host platform inferred as: x86_64-unknown-linux
Target platform inferred as: x86_64-unknown-linux
GHC build : x86_64-unknown-linux
GHC host : x86_64-unknown-linux
GHC target : x86_64-unknown-linux
LLVM target: x86_64-unknown-linux
checking whether target supports a registerised ABI... yes
checking whether target supports tables next to code... yes
checking for path to top of build tree... /home/ryanglscott/Software/ghc3
checking for -windres... no
checking for windres... no
checking for -dllwrap... no
checking for dllwrap... no
checking for -objdump... no
checking for objdump... objdump
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking how to run the C preprocessor... cc -E
checking for cc option to accept ISO C99... none needed
checking for cc option to accept ISO C99... none needed
checking for cc option to accept ISO C99... none needed
checking for cc option to accept ISO C99... none needed
checking for -ld.lld... no
checking for ld.lld... no
checking for -ld.gold... no
checking for ld.gold... ld.gold
checking whether C compiler supports -fuse-ld=gold... yes
checking for ld.gold object merging bug (binutils 22266)... not affected
checking whether ld is GNU ld... YES
checking whether ld understands --build-id... yes
checking whether ld understands -no_compact_unwind... yes
checking whether ld understands -filelist... no
checking for -nm... no
checking for nm... nm
checking for ranlib... ranlib
checking for -strip... no
checking for strip... strip
checking for -libtool... no
checking for libtool... no
checking for -otool... no
checking for otool... no
checking for -install_name_tool... no
checking for install_name_tool... no
checking for -clang... no
checking for clang... no
checking for llc-10... no
checking for llc-10.0... no
checking for llc... no
checking for opt-10... no
checking for opt-10.0... no
checking for opt... no
configure: Creating links for in-tree file handling routines
configure: Routines in place. Packages can now be build normally.
configure: Creating links for ghci wrapper
configure: done.
checking whether #! works in shell scripts... yes
configure: $CC is not gcc; assuming it's a reasonably new C compiler
checking whether GCC supports -no-pie... yes
checking whether GCC supports __atomic_ builtins... yes
checking for extra options to pass gcc when compiling via C...
checking whether C compiler has an LLVM back end... no
checking Setting up CFLAGS, LDFLAGS, IGNORE_LINKER_LD_FLAGS and CPPFLAGS... done
checking Setting up CONF_CC_OPTS_STAGE0, CONF_GCC_LINKER_OPTS_STAGE0, CONF_LD_LINKER_OPTS_STAGE0 and CONF_CPP_OPTS_STAGE0... done
checking Setting up CONF_CC_OPTS_STAGE1, CONF_GCC_LINKER_OPTS_STAGE1, CONF_LD_LINKER_OPTS_STAGE1 and CONF_CPP_OPTS_STAGE1... done
checking Setting up CONF_CC_OPTS_STAGE2, CONF_GCC_LINKER_OPTS_STAGE2, CONF_LD_LINKER_OPTS_STAGE2 and CONF_CPP_OPTS_STAGE2... done
checking for .subsections_via_symbols... no
checking whether your assembler supports .ident directive... yes
checking for GNU non-executable stack support... yes
checking for a working context diff... diff -U 1
checking for a BSD-compatible install... /usr/bin/install -c
checking for -ar... no
checking for ar... ar
checking whether ar is GNU ar... yes
checking for ar arguments... q
checking whether ar supports @file... yes
checking for ranlib... (cached) ranlib
checking whether ln -s works... yes
checking for gsed... no
checking for sed... /usr/bin/sed
checking for time... /usr/bin/time
checking for gnutar... no
checking for gtar... no
checking for tar... /usr/bin/tar
checking for bzip2... /usr/bin/bzip2
checking for gzip... /usr/bin/gzip
checking for pxz... no
checking for xz... /usr/bin/xz
checking for gpatch... no
checking for patch... /usr/bin/patch
checking for autoreconf... /usr/bin/autoreconf
checking for dtrace... no
checking for HsColour... /home/ryanglscott/.cabal/bin/HsColour
checking for sphinx-build... /usr/bin/sphinx-build
checking for version of sphinx-build... 1.8.5
checking for xelatex... no
checking for makeindex... no
checking for makeinfo... no
checking for python3... /usr/bin/python3
checking for ghc-pkg matching /opt/ghc/9.0.1/bin/ghc... /opt/ghc/9.0.1/bin/ghc-pkg
checking for happy... /home/ryanglscott/.cabal/bin/happy
checking for version of happy... 1.20.0
checking for alex... /home/ryanglscott/.cabal/bin/alex
checking for version of alex... 3.2.6
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking dirent.h usability... yes
checking dirent.h presence... yes
checking for dirent.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking grp.h usability... yes
checking grp.h presence... yes
checking for grp.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking nlist.h usability... no
checking nlist.h presence... no
checking for nlist.h... no
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking sys/timerfd.h usability... yes
checking sys/timerfd.h presence... yes
checking for sys/timerfd.h... yes
checking sys/timers.h usability... no
checking sys/timers.h presence... no
checking for sys/timers.h... no
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking windows.h usability... no
checking windows.h presence... no
checking for windows.h... no
checking winsock.h usability... no
checking winsock.h presence... no
checking for winsock.h... no
checking sched.h usability... yes
checking sched.h presence... yes
checking for sched.h... yes
checking for sys/cpuset.h... no
checking whether time.h and sys/time.h may both be included... yes
checking for long long... yes
checking size of char... 1
checking for char... yes
checking alignment of char... 1
checking size of double... 8
checking for double... yes
checking alignment of double... 8
checking size of float... 4
checking for float... yes
checking alignment of float... 4
checking size of int... 4
checking for int... yes
checking alignment of int... 4
checking size of long... 8
checking for long... yes
checking alignment of long... 8
checking size of long long... 8
checking for long long... (cached) yes
checking alignment of long long... 8
checking size of short... 2
checking for short... yes
checking alignment of short... 2
checking size of unsigned char... 1
checking for unsigned char... yes
checking alignment of unsigned char... 1
checking size of unsigned int... 4
checking for unsigned int... yes
checking alignment of unsigned int... 4
checking size of unsigned long... 8
checking for unsigned long... yes
checking alignment of unsigned long... 8
checking size of unsigned long long... 8
checking for unsigned long long... yes
checking alignment of unsigned long long... 8
checking size of unsigned short... 2
checking for unsigned short... yes
checking alignment of unsigned short... 2
checking size of void *... 8
checking for void *... yes
checking alignment of void *... 8
checking size of int8_t... 1
checking for int8_t... yes
checking alignment of int8_t... 1
checking size of uint8_t... 1
checking for uint8_t... yes
checking alignment of uint8_t... 1
checking size of int16_t... 2
checking for int16_t... yes
checking alignment of int16_t... 2
checking size of uint16_t... 2
checking for uint16_t... yes
checking alignment of uint16_t... 2
checking size of int32_t... 4
checking for int32_t... yes
checking alignment of int32_t... 4
checking size of uint32_t... 4
checking for uint32_t... yes
checking alignment of uint32_t... 4
checking size of int64_t... 8
checking for int64_t... yes
checking alignment of int64_t... 8
checking size of uint64_t... 8
checking for uint64_t... yes
checking alignment of uint64_t... 8
checking whether byte ordering is bigendian... no
checking for WinExec... no
checking for GetModuleFileName... no
checking for getclock... no
checking for getrusage... yes
checking for gettimeofday... yes
checking for setitimer... yes
checking for siginterrupt... yes
checking for sysconf... yes
checking for times... yes
checking for ctime_r... yes
checking for sched_setaffinity... yes
checking for sched_getaffinity... yes
checking for setlocale... yes
checking whether ctime_r is declared... yes
checking for closedir in -lmingwex... no
checking for atan in -lm... yes
checking for dlopen in -ldl... yes
checking for dlopen in -ldl... (cached) yes
checking for dlinfo... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for pid_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for an ANSI C-conforming const... yes
checking whether byte ordering is bigendian... (cached) no
checking whether float word order is big endian... no
checking for nlist in -lelf... no
checking leading underscore in symbol names... no
checking whether __attribute__((visibility("hidden"))) is supported... yes
checking for clock_gettime in -lrt... yes
checking for clock_gettime in -lrt... (cached) yes
checking for clock_gettime... yes
checking for timer_settime... yes
checking for timer_create... yes
checking for a working timer_create(CLOCK_REALTIME)... yes
checking for printf$LDBLStub... no
checking whether -lpthread is needed for pthreads... checking for pthread_create... no
checking for pthread_create in -lpthread... yes
yes
checking for pthread_setname_np in -lpthread... yes
checking for pthread_setname_np... yes
checking sys/eventfd.h usability... yes
checking sys/eventfd.h presence... yes
checking for sys/eventfd.h... yes
checking for eventfd... yes
checking for __thread support... yes
checking whether MAP_NORESERVE is declared... yes
checking whether MADV_FREE is declared... yes
checking whether MADV_DONTNEED is declared... yes
checking numa.h usability... no
checking numa.h presence... no
checking for numa.h... no
checking numaif.h usability... no
checking numaif.h presence... no
checking for numaif.h... no
configure: creating ./config.status
config.status: creating hadrian/cfg/system.config
config.status: creating hadrian/ghci-cabal
config.status: creating hadrian/ghci-stack
config.status: creating mk/config.mk
config.status: creating mk/install.mk
config.status: creating mk/project.mk
config.status: creating rts/rts.cabal
config.status: creating compiler/ghc.cabal
config.status: creating ghc/ghc-bin.cabal
config.status: creating utils/runghc/runghc.cabal
config.status: creating driver/ghci/ghci-wrapper.cabal
config.status: creating utils/iserv/iserv.cabal
config.status: creating utils/iserv-proxy/iserv-proxy.cabal
config.status: creating utils/remote-iserv/remote-iserv.cabal
config.status: creating utils/gen-dll/gen-dll.cabal
config.status: creating libraries/ghc-boot/ghc-boot.cabal
config.status: creating libraries/ghc-boot-th/ghc-boot-th.cabal
config.status: creating libraries/ghci/ghci.cabal
config.status: creating libraries/ghc-heap/ghc-heap.cabal
config.status: creating libraries/libiserv/libiserv.cabal
config.status: creating libraries/template-haskell/template-haskell.cabal
config.status: creating docs/users_guide/ghc_config.py
config.status: creating docs/index.html
config.status: creating libraries/prologue.txt
config.status: creating distrib/configure.ac
config.status: creating mk/config.h
----------------------------------------------------------------------
Configure completed successfully.
Building GHC version : 9.1.20210310
Git commit id : 8a59f49ae2204dbf58ef50ea8c0a50ee2c7aa64a
Build platform : x86_64-unknown-linux
Host platform : x86_64-unknown-linux
Target platform : x86_64-unknown-linux
Bootstrapping using : /opt/ghc/9.0.1/bin/ghc
which is version : 9.0.1
with threaded RTS? : YES
Using (for bootstrapping) : cc
Using gcc : cc
which is version :
linker options : -fuse-ld=gold
Building a cross compiler : NO
Unregisterised : NO
TablesNextToCode : YES
Build GMP in tree : NO
hs-cpp : cc
hs-cpp-flags : -E -undef -traditional
ar : ar
ld : ld.gold
nm : nm
libtool :
objdump : objdump
ranlib : ranlib
otool :
install_name_tool :
windres :
dllwrap :
genlib :
Happy : /home/ryanglscott/.cabal/bin/happy (1.20.0)
Alex : /home/ryanglscott/.cabal/bin/alex (3.2.6)
sphinx-build : /usr/bin/sphinx-build
xelatex :
makeinfo :
Using LLVM tools
clang :
llc :
opt :
HsColour : /home/ryanglscott/.cabal/bin/HsColour
Tools to build Sphinx HTML documentation available: YES
Tools to build Sphinx PDF documentation available: NO
Tools to build Sphinx INFO documentation available: NO
----------------------------------------------------------------------
For a standard build of GHC (fully optimised with profiling), type (g)make.
To make changes to the default build configuration, copy the file
mk/build.mk.sample to mk/build.mk, and edit the settings in there.
For more information on how to configure your GHC build, see
https://gitlab.haskell.org/ghc/ghc/wikis/building
$ ./hadrian/ghci
Warning: libraries/transformers/transformers.cabal:43:30: version operators
used. To use version operators the package needs to specify at least
'cabal-version: >= 1.8'.
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/ghc-boot-th/build/libHSghc-boot-th-9.1.a
ghc-pkg: cannot find package rts
ghc-pkg: cannot find package ghc-prim
ghc-pkg: cannot find package ghc-bignum
ghc-pkg: cannot find package base
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
libraries/transformers/Control/Monad/Trans/Error.hs:98:1: warning: [-Worphans]
Orphan instance: instance [safe] Error e => Alternative (Either e)
To avoid this
move the instance declaration to the module of the class or of the type, or
wrap the type with a newtype and declare the instance on the new type.
|
98 | instance (Error e) => Alternative (Either e) where
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
libraries/transformers/Control/Monad/Trans/Error.hs:103:1: warning: [-Worphans]
Orphan instance: instance [safe] Error e => MonadPlus (Either e)
To avoid this
move the instance declaration to the module of the class or of the type, or
wrap the type with a newtype and declare the instance on the new type.
|
103 | instance (Error e) => MonadPlus (Either e) where
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/transformers/build/libHStransformers-0.5.6.2.a
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/template-haskell/build/libHStemplate-haskell-2.17.0.0.a
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/mtl/build/libHSmtl-2.2.2.a
ghc-pkg: cannot find package array
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
ghc-pkg: cannot find package deepseq
ghc-pkg: cannot find package pretty
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
Warning: libraries/filepath/filepath.cabal:1:24: Packages with 'cabal-version:
1.12' or later should specify a specific version of the Cabal spec of the form
'cabal-version: x.y'. Use 'cabal-version: 1.18'.
libraries/binary/src/Data/Binary/Class.hs:825:30: warning: [-Wdeprecations]
In the use of type constructor or class ‘Option’
(imported from Data.Semigroup):
Deprecated: "will be removed in GHC 9.2; use 'Maybe' instead."
|
825 | instance Binary a => Binary (Semigroup.Option a) where
| ^^^^^^^^^^^^^^^^
libraries/binary/src/Data/Binary/Class.hs:826:14: warning: [-Wdeprecations]
In the use of data constructor ‘Option’
(imported from Data.Semigroup):
Deprecated: "will be removed in GHC 9.2; use 'Maybe' instead."
|
826 | get = fmap Semigroup.Option get
| ^^^^^^^^^^^^^^^^
libraries/binary/src/Data/Binary/Class.hs:827:15: warning: [-Wdeprecations]
In the use of ‘getOption’ (imported from Data.Semigroup):
Deprecated: "will be removed in GHC 9.2; use 'Maybe' instead."
|
827 | put = put . Semigroup.getOption
| ^^^^^^^^^^^^^^^^^^^
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/binary/build/libHSbinary-0.8.8.0.a
ghc-pkg: cannot find package containers
ghc-pkg: cannot find package bytestring
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/ghc-boot/build/libHSghc-boot-9.1.a
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/ghc-heap/build/libHSghc-heap-9.1.a
ghc-pkg: cannot find package filepath
ghc-pkg: cannot find package time
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
ghc-pkg: cannot find package unix
ghc-pkg: cannot find package directory
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/text/build/libHStext-1.2.4.2.a
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/exceptions/build/libHSexceptions-0.10.4.a
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/terminfo/build/libHSterminfo-0.4.1.4.a
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/hpc/build/libHShpc-0.6.1.0.a
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/ghci/build/libHSghci-9.1.a
/usr/bin/ar: creating .hadrian_ghci/stage0/libraries/parsec/build/libHSparsec-3.1.14.0.a
ghc-pkg: cannot find package stm
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
Call hs_init_ghc() from your main() function to set these options.
GHCi, version 9.0.1: https://www.haskell.org/ghc/ :? for help
<command line>: .hadrian_ghci/stage0/lib/../lib/x86_64-linux-ghc-9.0.1/libHSghci-9.1-ghc9.0.1.so: undefined symbol: templatezmhaskell_LanguageziHaskellziTHziSyntax_zdfShowDocLoc_closure
Bisecting reveals that this starting occurring in commit 8a59f49a.