Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
190b2d90
Commit
190b2d90
authored
Sep 18, 2010
by
kili
Browse files
Enable shared libs on OpenBSD
parent
a6f2d598
Changes
6
Hide whitespace changes
Inline
Side-by-side
compiler/HsVersions.h
View file @
190b2d90
...
...
@@ -17,7 +17,7 @@ you will screw up the layout where they are used in case expressions!
#include
"ghc_boot_platform.h"
/* This macro indicates that the target OS supports ELF-like shared libraries */
#if linux_TARGET_OS || freebsd_TARGET_OS
#if linux_TARGET_OS || freebsd_TARGET_OS
|| openbsd_TARGET_OS
#define elf_OBJ_FORMAT 1
#endif
...
...
compiler/main/DriverPipeline.hs
View file @
190b2d90
...
...
@@ -1538,7 +1538,7 @@ linkBinary dflags o_files dep_packages = do
let
thread_opts
|
WayThreaded
`
elem
`
ways
=
[
#
if
!
defined
(
mingw32_TARGET_OS
)
&&
!
defined
(
freebsd_TARGET_OS
)
&&
!
defined
(
haiku_TARGET_OS
)
#
if
!
defined
(
mingw32_TARGET_OS
)
&&
!
defined
(
freebsd_TARGET_OS
)
&&
!
defined
(
openbsd_TARGET_OS
)
&&
!
defined
(
haiku_TARGET_OS
)
"-lpthread"
#
endif
#
if
defined
(
osf3_TARGET_OS
)
...
...
compiler/main/StaticFlags.hs
View file @
190b2d90
...
...
@@ -413,6 +413,9 @@ way_details =
-- the problems are our fault or theirs, but it seems that using the
-- alternative 1:1 threading library libthr works around it:
"-optl-lthr"
#
elif
defined
(
openbsd_TARGET_OS
)
"-optc-pthread"
,
"-optl-pthread"
#
elif
defined
(
solaris2_TARGET_OS
)
"-optl-lrt"
#
endif
...
...
@@ -428,6 +431,10 @@ way_details =
-- with -fPIC. Labels not in the current package are assumed to be in a DLL
-- different from the current one.
,
"-fPIC"
#
elif
defined
(
openbsd_TARGET_OS
)
-- Without this, linking the shared libHSffi fails because
-- it uses pthread mutexes.
,
"-optl-pthread"
#
endif
],
...
...
compiler/nativeGen/Platform.hs
View file @
190b2d90
...
...
@@ -49,6 +49,7 @@ data OS
|
OSSolaris
|
OSMinGW32
|
OSFreeBSD
|
OSOpenBSD
deriving
(
Show
,
Eq
)
...
...
@@ -56,6 +57,7 @@ data OS
osElfTarget
::
OS
->
Bool
osElfTarget
OSLinux
=
True
osElfTarget
OSFreeBSD
=
True
osElfTarget
OSOpenBSD
=
True
osElfTarget
_
=
False
-- | This is the target platform as far as the #ifdefs are concerned.
...
...
@@ -96,6 +98,8 @@ defaultTargetOS = OSSolaris
defaultTargetOS
=
OSMinGW32
#
elif
freebsd_TARGET_OS
defaultTargetOS
=
OSFreeBSD
#
elif
openbsd_TARGET_OS
defaultTargetOS
=
OSOpenBSD
#
else
defaultTargetOS
=
OSUnknown
#
endif
...
...
libffi/ghc.mk
View file @
190b2d90
...
...
@@ -75,6 +75,8 @@ libffi_DYNAMIC_PROG =
ifeq
"$(darwin_TARGET_OS)" "1"
libffi_DYNAMIC_LIBS
=
libffi/dist-install/build/libffi
$(soext)
\
libffi/dist-install/build/libffi.5
$(soext)
else
ifeq
"$(openbsd_TARGET_OS)" "1"
libffi_DYNAMIC_LIBS
=
libffi/dist-install/build/libffi.so.5.10
else
libffi_DYNAMIC_LIBS
=
libffi/dist-install/build/libffi.so
\
libffi/dist-install/build/libffi.so.5
...
...
mk/config.mk.in
View file @
190b2d90
...
...
@@ -104,7 +104,12 @@ GhcDynamic=NO
GhcProfiled
=
NO
# Do we support shared libs?
PlatformSupportsSharedLibs
=
$(
if
$(
filter
$(TARGETPLATFORM)
,i386-unknown-linux x86_64-unknown-linux i386-unknown-freebsd x86_64-unknown-freebsd i386-unknown-mingw32 i386-apple-darwin powerpc-apple-darwin
)
,YES,NO
)
PlatformSupportsSharedLibs
=
$(
if
$(
filter
$(TARGETPLATFORM)
,
\
i386-unknown-linux x86_64-unknown-linux
\
i386-unknown-freebsd x86_64-unknown-freebsd
\
i386-unknown-openbsd x86_64-unknown-openbsd
\
i386-unknown-mingw32
\
i386-apple-darwin powerpc-apple-darwin
)
,YES,NO
)
# Build a compiler that will build *unregisterised* libraries and
# binaries by default. Unregisterised code is supposed to compile and
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment