blob: e2918ccaf28b6a7c0c7d1ecec25a67bb5d07e043 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
cabal-version: 2.2
name: ghc-prim
version: 0.9.0
-- NOTE: Don't forget to update ./changelog.md
license: BSD-3-Clause
license-file: LICENSE
category: GHC
maintainer: libraries@haskell.org
bug-reports: https://gitlab.haskell.org/ghc/ghc/issues/new
synopsis: GHC primitives
build-type: Custom
description:
This package contains the primitive types and operations supplied by GHC.
extra-source-files: changelog.md
source-repository head
type: git
location: https://gitlab.haskell.org/ghc/ghc.git
subdir: libraries/ghc-prim
custom-setup
setup-depends: base >= 4 && < 5, process, filepath, directory, Cabal >= 1.23 && < 3.8
Library
default-language: Haskell2010
other-extensions:
BangPatterns
CPP
DeriveGeneric
MagicHash
MultiParamTypeClasses
NoImplicitPrelude
StandaloneDeriving
Trustworthy
TypeFamilies
UnboxedTuples
UnliftedFFITypes
build-depends: rts == 1.0.*
exposed-modules:
GHC.CString
GHC.Classes
GHC.Debug
GHC.Magic
GHC.Magic.Dict
GHC.Prim.Ext
GHC.Prim.Panic
GHC.Prim.Exception
GHC.Prim.PtrEq
GHC.PrimopWrappers
GHC.Tuple
GHC.Types
virtual-modules:
GHC.Prim
-- OS Specific
if os(windows)
-- Windows requires some extra libraries for linking because the RTS
-- is no longer re-exporting them (see #11223)
-- msvcrt: standard C library. The RTS will automatically include this,
-- but is added for completeness.
-- mingwex: provides C99 compatibility. libm is a stub on MingW.
-- mingw32: Unfortunately required because of a resource leak between
-- mingwex and mingw32. the __math_err symbol is defined in
-- mingw32 which is required by mingwex.
-- user32: provides access to apis to modify user components (UI etc)
-- on Windows. Required because of mingw32.
extra-libraries: user32, mingw32, mingwex, ucrt
if os(linux)
-- we need libm, but for musl and other's we might need libc, as libm
-- is just an empty shell.
extra-libraries: c, m
c-sources:
cbits/atomic.c
cbits/bswap.c
cbits/bitrev.c
cbits/clz.c
cbits/ctz.c
cbits/debug.c
cbits/longlong.c
cbits/pdep.c
cbits/pext.c
cbits/popcnt.c
cbits/word2float.c
-- We need to set the unit ID to ghc-prim (without a version number)
-- as it's magic.
ghc-options: -this-unit-id ghc-prim
|