[GHC] #13091: Build broken on amd64 solaris 11

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Build System | Version: 8.0.2 Keywords: | Operating System: Solaris Architecture: x86_64 | Type of failure: Building GHC (amd64) | failed Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- {{{ ===--- building phase 1 gmake --no-print-directory -f ghc.mk phase=1 phase_1_builds libraries/hpc/ghc.mk:3: libraries/hpc/dist-boot/build/.depend-v.haskell: No such file or directory compiler/ghc.mk:584: compiler/stage1/build/.depend-v.haskell: No such file or directory "/opt/ghc-7.10.2-amd64/bin/ghc" -hisuf hi -osuf o -hcsuf hc -static -H32m -O -Wall -package-db libraries/bootstrapping.conf -hide-all- packages -i -iutils/hsc2hs/. -iutils/hsc2hs/dist/build -iutils/hsc2hs/dist/build/autogen -Iutils/hsc2hs/dist/build -Iutils/hsc2hs/dist/build/autogen -optP-include -optPutils/hsc2hs/dist/build/autogen/cabal_macros.h -package-id base-4.8.1.0-bcc57434d4c4ded429bd4c7561dc7931 -package-id containers-0.5.6.2-3bd9811190df2d727713a53a0942b5c9 -package-id directory-1.2.2.0-17006ecadb146c26f40f44f8704a6547 -package-id filepath-1.4.0.0-8fee9c13b5e42926cc01f6aa7c403c4b -package-id process-1.2.3.0-47082ea082854427d5ceb7c692692d3c -XHaskell2010 -no-user- package-db -rtsopts -odir utils/hsc2hs/dist/build -hidir utils/hsc2hs/dist/build -stubdir utils/hsc2hs/dist/build -c utils/hsc2hs/./Main.hs -o utils/hsc2hs/dist/build/Main.o "/opt/ghc-7.10.2-amd64/bin/ghc" -o utils/hsc2hs/dist/build/tmp/hsc2hs -hisuf hi -osuf o -hcsuf hc -static -H32m -O -Wall -package-db libraries/bootstrapping.conf -hide-all-packages -i -iutils/hsc2hs/. -iutils/hsc2hs/dist/build -iutils/hsc2hs/dist/build/autogen -Iutils/hsc2hs/dist/build -Iutils/hsc2hs/dist/build/autogen -optP- include -optPutils/hsc2hs/dist/build/autogen/cabal_macros.h -package-id base-4.8.1.0-bcc57434d4c4ded429bd4c7561dc7931 -package-id containers-0.5.6.2-3bd9811190df2d727713a53a0942b5c9 -package-id directory-1.2.2.0-17006ecadb146c26f40f44f8704a6547 -package-id filepath-1.4.0.0-8fee9c13b5e42926cc01f6aa7c403c4b -package-id process-1.2.3.0-47082ea082854427d5ceb7c692692d3c -XHaskell2010 -no-user- package-db -rtsopts -odir utils/hsc2hs/dist/build -hidir utils/hsc2hs/dist/build -stubdir utils/hsc2hs/dist/build -optl-optl- Wl,-m64 -static -H32m -O -Wall -package-db libraries/bootstrapping.conf -hide-all-packages -i -iutils/hsc2hs/. -iutils/hsc2hs/dist/build -iutils/hsc2hs/dist/build/autogen -Iutils/hsc2hs/dist/build -Iutils/hsc2hs/dist/build/autogen -optP-include -optPutils/hsc2hs/dist/build/autogen/cabal_macros.h -package-id base-4.8.1.0-bcc57434d4c4ded429bd4c7561dc7931 -package-id containers-0.5.6.2-3bd9811190df2d727713a53a0942b5c9 -package-id directory-1.2.2.0-17006ecadb146c26f40f44f8704a6547 -package-id filepath-1.4.0.0-8fee9c13b5e42926cc01f6aa7c403c4b -package-id process-1.2.3.0-47082ea082854427d5ceb7c692692d3c -XHaskell2010 -no-user- package-db -rtsopts utils/hsc2hs/dist/build/Main.o utils/hsc2hs/dist/build/C.o utils/hsc2hs/dist/build/Common.o utils/hsc2hs/dist/build/CrossCodegen.o utils/hsc2hs/dist/build/DirectCodegen.o utils/hsc2hs/dist/build/Flags.o utils/hsc2hs/dist/build/HSCParser.o utils/hsc2hs/dist/build/UtilsCodegen.o utils/hsc2hs/dist/build/Paths_hsc2hs.o ld: fatal: option '-optl-Wl,-m64' and option '-outils/hsc2hs/dist/build/tmp/hsc2hs' are multiple definitions collect2: error: ld returned 1 exit status gmake[1]: *** [utils/hsc2hs/dist/build/tmp/hsc2hs] Error 1 gmake: *** [all] Error 2 }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by jwhite): The immediate cause is the bug described in #15075. When that bug is fixed, the build still fails on `hsc2hs`: {{{ "/opt/local/bin/ghc" -o utils/hsc2hs/dist/build/tmp/hsc2hs -hisuf hi -osuf o -hcsuf hc -static -H32m -O -Wall -package-db libraries/bootstrapping.conf -hide-all-packages -i -iutils/hsc2hs/. -iutils/hsc2hs/dist/build -iutils/hsc2hs/dist/build/autogen -Iutils/hsc2hs/dist/build -Iutils/hsc2hs/dist/build/autogen -optP- include -optPutils/hsc2hs/dist/build/autogen/cabal_macros.h -package-id base-4.8.2.0-7097b6a59941ac1c7cd21845d2bb489f -package-id containers-0.5.6.2-312177b9402c9bc329c058bf8e768a8c -package-id directory-1.2.2.0-78f4e60e387a622bced41832df453a58 -package-id filepath-1.4.0.0-f97d1e4aebfd7a03be6980454fe31d6e -package-id process-1.2.3.0-5572f0ea7a5798559ac3d63d002bf1d4 -XHaskell2010 -no-user- package-db -rtsopts -odir utils/hsc2hs/dist/build -hidir utils/hsc2hs/dist/build -stubdir utils/hsc2hs/dist/build -optl-Wl,-m64 -static -H32m -O -Wall -package-db libraries/bootstrapping.conf -hide- all-packages -i -iutils/hsc2hs/. -iutils/hsc2hs/dist/build -iutils/hsc2hs/dist/build/autogen -Iutils/hsc2hs/dist/build -Iutils/hsc2hs/dist/build/autogen -optP-include -optPutils/hsc2hs/dist/build/autogen/cabal_macros.h -package-id base-4.8.2.0-7097b6a59941ac1c7cd21845d2bb489f -package-id containers-0.5.6.2-312177b9402c9bc329c058bf8e768a8c -package-id directory-1.2.2.0-78f4e60e387a622bced41832df453a58 -package-id filepath-1.4.0.0-f97d1e4aebfd7a03be6980454fe31d6e -package-id process-1.2.3.0-5572f0ea7a5798559ac3d63d002bf1d4 -XHaskell2010 -no-user- package-db -rtsopts utils/hsc2hs/dist/build/Main.o utils/hsc2hs/dist/build/C.o utils/hsc2hs/dist/build/Common.o utils/hsc2hs/dist/build/CrossCodegen.o utils/hsc2hs/dist/build/DirectCodegen.o utils/hsc2hs/dist/build/Flags.o utils/hsc2hs/dist/build/HSCParser.o utils/hsc2hs/dist/build/UtilsCodegen.o utils/hsc2hs/dist/build/Paths_hsc2hs.o ghc: fd:12: hGetContents: does not exist (No such file or directory) utils/hsc2hs/ghc.mk:15: recipe for target 'utils/hsc2hs/dist/build/tmp/hsc2hs' failed make[1]: *** [utils/hsc2hs/dist/build/tmp/hsc2hs] Error 2 make[1]: *** Deleting file 'utils/hsc2hs/dist/build/tmp/hsc2hs' Makefile:129: recipe for target 'all' failed make: *** [all] Error 2 }}} Note on the command line `-optl-Wl,-m64`. The Solaris linker does not support an `-m64` option. It should be `-64` instead. After fixing that, the build proceeds, and eventually completes. The following diff fixes it, after `autoreconf && ./configure`: {{{ diff --git a/aclocal.m4 b/aclocal.m4 index 7723743..fcf3a47 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -560,7 +560,7 @@ AC_DEFUN([FPTOOLS_SET_C_LD_FLAGS], x86_64-unknown-solaris2) $2="$$2 -m64" $3="$$3 -m64" - $4="$$4 -m64" + $4="$$4 -64" $5="$$5 -m64" ;; alpha-*) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): Presumably the `-m64` flag is assuming that the user will be using a gnu toolchain on Solaris. It seems like we should try to avoid breaking this possibility. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * milestone: => 8.6.1 -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by jwhite): Yes, I suppose I should have said "fixes it for me". For more context, I'm building on SmartOS on a `base64 14.3.0` image (which is a bit old), and it has no toolchain installed by default, just the system linker in `/usr/bin/ld`. The toolchain I am using is gcc 4.7, installed from the pkgsrc package `gcc47-4.7.3nb6`. The compiler is installed as `/opt/local/bin/gcc` and the linker as `/opt/local/bin/gld`. I guess that's why `./configure` is picking up `/usr/bin/ld`. The bootstrap GHC is 7.10.3, itself bootstrapped from GHC 7.6.3 from pkgsrc package `ghc-7.6.3nb4`, both using `/usr/bin/ld`. Also, even though binutils is installed (pkgsrc `binutils-2.24nb3`), gcc is using `/usr/bin/ld`, not `/opt/local/bin/gld`: {{{ $ truss -af -t execve /opt/local/bin/gcc -o main main.c ... 74127: execve("/usr/bin/ld", 0x00470C20, 0x0046B1D0) argc = 28 74127: argv: /usr/bin/ld -R/opt/local/lib/ -Y 74127: P,/lib/amd64:/usr/lib/amd64:/opt/local/lib/ -Qy -o main 74127: /usr/lib/amd64/crt1.o /usr/lib/amd64/crti.o 74127: /usr/lib/amd64/values-Xa.o 74127: /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/crtbegin.o 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun- solaris2.11/4.7.3/../../../../x86_64-sun-solaris2.11/lib/amd64 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun- solaris2.11/4.7.3/../../../amd64 74127: -L/lib/amd64 -L/usr/lib/amd64 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun- solaris2.11/4.7.3/../../../../x86_64-sun-solaris2.11/lib 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/../../.. 74127: -R/opt/local/gcc47/x86_64-sun-solaris2.11/lib/amd64 74127: -R/opt/local/gcc47/lib/amd64 /var/tmp//ccPDaWlK.o -lgcc 74127: -lgcc_eh -lc -lgcc -lgcc_eh 74127: /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/crtend.o 74127: /usr/lib/amd64/crtn.o 74127: execve("/usr/bin/amd64/ld", 0x08047578, 0x080475EC) argc = 28 74127: argv: /usr/bin/ld -R/opt/local/lib/ -Y 74127: P,/lib/amd64:/usr/lib/amd64:/opt/local/lib/ -Qy -o main 74127: /usr/lib/amd64/crt1.o /usr/lib/amd64/crti.o 74127: /usr/lib/amd64/values-Xa.o 74127: /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/crtbegin.o 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun- solaris2.11/4.7.3/../../../../x86_64-sun-solaris2.11/lib/amd64 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun- solaris2.11/4.7.3/../../../amd64 74127: -L/lib/amd64 -L/usr/lib/amd64 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun- solaris2.11/4.7.3/../../../../x86_64-sun-solaris2.11/lib 74127: -L/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/../../.. 74127: -R/opt/local/gcc47/x86_64-sun-solaris2.11/lib/amd64 74127: -R/opt/local/gcc47/lib/amd64 /var/tmp//ccPDaWlK.o -lgcc 74127: -lgcc_eh -lc -lgcc -lgcc_eh 74127: /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/crtend.o 74127: /usr/lib/amd64/crtn.o 74125: Received signal #18, SIGCLD, in waitid() [default] 74125: siginfo: SIGCLD CLD_EXITED pid=74127 status=0x0000 74104: Received signal #18, SIGCLD, in waitid() [default] 74104: siginfo: SIGCLD CLD_EXITED pid=74125 status=0x0000 }}} So I don't think I'm in a position to test that right now (rebuilding all those toolchains on top of GNU binutils would take a very long time, I'm running this on a very slow VM). Regardless, I'm not sure `-m64` would be right here for GNU ld either. `-m` takes an `emulation` argument, and the valid values are given by {{{ $ ld -V GNU ld (GNU Binutils)2.24 Supported emulations: elf_x86_64_sol2 elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_l1om elf_k1om }}} Maybe one of the first two is what's needed? Or perhaps it can just be omitted for GNU ld? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: #15075 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by jwhite): * related: => #15075 -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: #15075 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by ru0mad): * Attachment "cabal-install-build.sh" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: #15075 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by ru0mad): * Attachment "cabal-install-2.2.0.0.patch" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: #15075 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by ru0mad): * Attachment "ghc-build.sh" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: #15075 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by ru0mad): * Attachment "ghc-8.4.2-solaris2.11.patch" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: #15075 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by ru0mad): * Attachment "stack-build.sh" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: #15075 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by ru0mad): * Attachment "filelock-0.1.1.2.patch" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: #15075 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by ru0mad): * Attachment "stack-1.7.1.patch" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11 -------------------------------------+------------------------------------- Reporter: kgardas | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Build System | Version: 8.0.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 Type of failure: Building GHC | (amd64) failed | Test Case: Blocked By: | Blocking: Related Tickets: #15075 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by ru0mad): * Attachment "testsuite_summary.txt" added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13091 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13091: Build broken on amd64 solaris 11
-------------------------------------+-------------------------------------
Reporter: kgardas | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone: 8.6.1
Component: Build System | Version: 8.0.2
Resolution: | Keywords:
Operating System: Solaris | Architecture: x86_64
Type of failure: Building GHC | (amd64)
failed | Test Case:
Blocked By: | Blocking:
Related Tickets: #15075 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by ru0mad):
Hello,
I managed somehow to build ghc-8.4.2 on solaris 11.4 (x86_64), along with
cabal-install and finally stack.
I had to apply some patches :
- to workaround the file locking problem (flock() missing on solaris) :
* in ghc to catch the FileLockingNotSupported exception raised on
solaris by GHC.IO.Handle.Lock
* similar in cabal-install (which clones more or less the GHC code)
* patch in filelock (used by stack) to refer to the file locking from
GHC base
- to have a working building process (the -optl-optl problem + )
- to include
participants (1)
-
GHC