[GHC] #15945: Unable to compile GHC from source on OpenBSD (-CURRENT)
GHC
ghc-devs at haskell.org
Sat Nov 24 21:23:35 UTC 2018
#15945: Unable to compile GHC from source on OpenBSD (-CURRENT)
-------------------------------------+-------------------------------------
Reporter: klomeli | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone: 8.6.3
Component: Build System | Version: 8.6.2
(make) |
Keywords: clang | Operating System: OpenBSD
Architecture: x86_64 | Type of failure: Building GHC
(amd64) | failed
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
I am running the following script to build GHC from sources
(ghc-8.6.2-src.tar.xz) on OpenBSD (-CURRENT):
{{{
#! /bin/sh
set -e
BUILD_DIR=/usr/local/tmp-build-ghc
export AUTOCONF_VERSION=2.69
export AUTOMAKE_VERSION=1.16
if [ ! -n "$1" ]; then
echo "ERROR: Provide path for ghc source."
exit 1
fi
echo "Extracting ghc source files from ${1} to ${BUILD_DIR} ..."
mkdir -p $BUILD_DIR
cd $BUILD_DIR
xzcat $1 | tar xvf -
GHC_DIR=`ls | grep ghc`
cd $GHC_DIR
echo "Cleaning up OpenBSD-incompatible commands..."
find . -type f | xargs sed -i -e 's|^ln -f -v |ln -f |'
echo "Building GHC... "
export CC=/usr/bin/clang
./boot
./configure --with-iconv-libraries=/usr/local/lib \
--with-iconv-includes=/usr/local/include \
--with-gmp-libraries=/usr/local/lib \
--with-gmp-includes=/usr/local/include \
--with-ffi-libraries=/usr/local/lib \
--with-ffi-includes=/usr/local/include \
--with-system-libffi
gmake
}}}
I will file a separate bug report for the **ln** incompatibility with the
unsupported **-v** flag.
When compiling GHC, I get the following error:
{{{
...
"inplace/bin/ghc-stage1" -optc-fno-stack-protector -optc-Wall -optc-Wall
-optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-
Wmissing-declarations -optc-Winline -optc-Waggregate-return -optc-
Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-
Wredundant-decls -optc-Wundef -optc-Iincludes -optc-Iincludes/dist -optc-
Iincludes/dist-derivedconstants/header -optc-Iincludes/dist-
ghcconstants/header -optc-Irts -optc-Irts/dist/build -optc-DCOMPILING_RTS
-optc-DFS_NAMESPACE=rts -optc-fno-strict-aliasing -optc-fno-common -optc-
Irts/dist/build/./autogen -optc-Wno-unknown-pragmas -optc-O2 -optc-fomit-
frame-pointer -optc-g -optc-DRtsWay=\"rts_v\" -optc-ffunction-sections
-optc-fdata-sections -static -H32m -O -Wall -Iincludes -Iincludes/dist
-Iincludes/dist-derivedconstants/header -Iincludes/dist-
ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS
-DFS_NAMESPACE=rts -this-unit-id rts -dcmm-lint -i -irts
-irts/dist/build -Irts/dist/build -irts/dist/build/./autogen
-Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-
monad-instances -c rts/RtsSymbols.c -o rts/dist/build/RtsSymbols.o
rts/RtsSymbols.c:990:1: error:
error: redefinition of '_DYNAMIC' as different kind of symbol
|
990 | RTS_OPENBSD_ONLY_SYMBOLS
| ^
RTS_OPENBSD_ONLY_SYMBOLS
^
rts/RtsSymbols.c:283:22: error:
note: expanded from macro 'RTS_OPENBSD_ONLY_SYMBOLS'
SymE_NeedsProto(_DYNAMIC)
^
|
283 | SymE_NeedsProto(_DYNAMIC)
| ^
/usr/include/sys/exec_elf.h:765:17: error:
note: previous definition is here
|
765 | extern Elf_Dyn _DYNAMIC[];
| ^
extern Elf_Dyn _DYNAMIC[];
^
1 error generated.
`clang' failed in phase `C Compiler'. (Exit code: 1)
gmake[1]: *** [rts/ghc.mk:315: rts/dist/build/RtsSymbols.o] Error 1
gmake: *** [Makefile:127: all] Error 2
}}}
Any suggestions appreciated. Thanks!
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15945>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list