Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
jberryman
GHC
Commits
30fad702
Commit
30fad702
authored
Jul 23, 2010
by
Ian Lynagh
Browse files
Use different CC/LD options for different stages
parent
ae8cc32e
Changes
6
Hide whitespace changes
Inline
Side-by-side
aclocal.m4
View file @
30fad702
...
...
@@ -4,6 +4,24 @@
# ensure we don't clash with any pre-supplied autoconf ones.
# FPTOOLS_SET_C_LD_FLAGS
# ----------------------------------
# Set the C and LD flags for a given platform
AC_DEFUN([FPTOOLS_SET_C_LD_FLAGS],
[
case $$1 in
i386-apple-darwin|powerpc-apple-darwin)
$2="$$2 -m32"
$3="$$3 -m32"
;;
x86_64-apple-darwin)
$2="$$2 -m64"
$3="$$3 -m64"
;;
esac
])
# FPTOOLS_FLOAT_WORD_ORDER_BIGENDIAN
# ----------------------------------
# Little endian Arm on Linux with some ABIs has big endian word order
...
...
configure.ac
View file @
30fad702
...
...
@@ -313,20 +313,18 @@ case $host in
;;
i386-apple-darwin|powerpc-apple-darwin)
soext='.dylib'
CFLAGS="$CFLAGS -m32"
LDFLAGS="$LDFLAGS -m32"
CONF_CC_OPTS="$CONF_CC_OPTS -m32"
CONF_LD_OPTS="$CONF_LD_OPTS -m32"
;;
x86_64-apple-darwin)
soext='.dylib'
CFLAGS="$CFLAGS -m64"
LDFLAGS="$LDFLAGS -m64"
CONF_CC_OPTS="$CONF_CC_OPTS -m64"
CONF_LD_OPTS="$CONF_LD_OPTS -m64"
;;
esac
FPTOOLS_SET_C_LD_FLAGS([target],[CFLAGS],[LDFLAGS])
FPTOOLS_SET_C_LD_FLAGS([build],[CONF_CC_OPTS_STAGE0],[CONF_LD_OPTS_STAGE0])
FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE1],[CONF_LD_OPTS_STAGE1])
# Stage 3 won't be supported by cross-compilation
FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE2],[CONF_LD_OPTS_STAGE2])
checkArch() {
case $1 in
alpha|arm|hppa|hppa1_1|i386|ia64|m68k|mips|mipseb|mipsel|powerpc|powerpc64|rs6000|s390|sparc|sparc64|vax|x86_64)
...
...
@@ -569,8 +567,12 @@ FP_GCC_EXTRA_FLAGS
dnl ** figure out how to invoke cpp directly (gcc -E is no good)
AC_PROG_CPP
AC_SUBST(CONF_CC_OPTS)
AC_SUBST(CONF_LD_OPTS)
AC_SUBST(CONF_CC_OPTS_STAGE0)
AC_SUBST(CONF_CC_OPTS_STAGE1)
AC_SUBST(CONF_CC_OPTS_STAGE2)
AC_SUBST(CONF_LD_OPTS_STAGE0)
AC_SUBST(CONF_LD_OPTS_STAGE1)
AC_SUBST(CONF_LD_OPTS_STAGE2)
dnl ** figure out how to do context diffs
FP_PROG_CONTEXT_DIFF
...
...
libffi/ghc.mk
View file @
30fad702
...
...
@@ -116,8 +116,8 @@ $(libffi_STAMP_CONFIGURE):
LD
=
$(LD)
\
AR
=
$(AR)
\
NM
=
$(NM)
\
CFLAGS
=
"
$(SRC_CC_OPTS)
$(CONF_CC_OPTS)
-w"
\
LDFLAGS
=
"
$(SRC_LD_OPTS)
$(CONF_LD_OPTS)
-w"
\
CFLAGS
=
"
$(SRC_CC_OPTS)
$(CONF_CC_OPTS
_STAGE1
)
-w"
\
LDFLAGS
=
"
$(SRC_LD_OPTS)
$(CONF_LD_OPTS
_STAGE1
)
-w"
\
"
$(SHELL)
"
configure
\
--enable-static
=
yes
\
--enable-shared
=
$(libffi_EnableShared)
\
...
...
@@ -173,7 +173,7 @@ $(eval $(call all-target,libffi,$(INSTALL_HEADERS) $(INSTALL_LIBS)))
libffi/dist-install/build/HSffi.o
:
libffi/dist-install/build/libHSffi.a
cd
libffi/dist-install/build
&&
\
touch
empty.c
&&
\
"
$(CC)
"
$(SRC_CC_OPTS)
$(CONF_CC_OPTS)
-c
empty.c
-o
HSffi.o
"
$(CC)
"
$(SRC_CC_OPTS)
$(CONF_CC_OPTS
_STAGE1
)
-c
empty.c
-o
HSffi.o
$(eval
$(call
all-target,libffi,libffi/dist-install/build/HSffi.o))
...
...
mk/config.mk.in
View file @
30fad702
...
...
@@ -535,14 +535,18 @@ endif
# C compiler and linker flags from configure (e.g. -m<blah> to select
# correct C compiler backend).
CONF_CC_OPTS
=
@CONF_CC_OPTS@
CONF_LD_OPTS
=
@CONF_LD_OPTS@
CONF_CC_OPTS_STAGE0
=
@CONF_CC_OPTS_STAGE0@
CONF_CC_OPTS_STAGE1
=
@CONF_CC_OPTS_STAGE1@
CONF_CC_OPTS_STAGE2
=
@CONF_CC_OPTS_STAGE2@
CONF_LD_OPTS_STAGE0
=
@CONF_LD_OPTS_STAGE0@
CONF_LD_OPTS_STAGE1
=
@CONF_LD_OPTS_STAGE1@
CONF_LD_OPTS_STAGE2
=
@CONF_LD_OPTS_STAGE2@
ifeq
"$(TARGETPLATFORM)" "ia64-unknown-linux"
CONF_CC_OPTS
+=
-G0
endif
SRC_HSC2HS_OPTS
+=
$(
addprefix
--cflag
=
,
$(
filter-out
-O
,
$(SRC_CC_OPTS)
$(CONF_CC_OPTS)
))
SRC_HSC2HS_OPTS
+=
$(
addprefix
--cflag
=
,
$(
filter-out
-O
,
$(SRC_CC_OPTS)
$(CONF_CC_OPTS
_STAGE0
)
))
SRC_HSC2HS_OPTS
+=
$(
foreach
d,
$(GMP_INCLUDE_DIRS)
,-I
$(d)
)
#-----------------------------------------------------------------------------
...
...
rules/build-package-data.mk
View file @
30fad702
...
...
@@ -31,7 +31,7 @@ endif
# We filter out -Werror from SRC_CC_OPTS, because when configure tests
# for a feature it may not generate warning-free C code, and thus may
# think that the feature doesn't exist if -Werror is on.
$1_$2_CONFIGURE_OPTS
+=
--configure-option
=
CFLAGS
=
"
$
$(
filter-out
-Werror,
$
$(SRC_CC_OPTS)
)
$
$(CONF_CC_OPTS)
$$
(
$1_CC_OPTS
)
$$
(
$1_$2_CC_OPTS
)"
$1_$2_CONFIGURE_OPTS
+=
--configure-option
=
CFLAGS
=
"
$
$(
filter-out
-Werror,
$
$(SRC_CC_OPTS)
)
$$
(CONF_CC_OPTS
_STAGE
$3
)
$$
(
$1_CC_OPTS
)
$$
(
$1_$2_CC_OPTS
)"
$1_$2_CONFIGURE_OPTS
+=
--configure-option
=
LDFLAGS
=
"
$
$(SRC_LD_OPTS)
$$
(
$1_LD_OPTS
)
$$
(
$1_$2_LD_OPTS
)"
ifneq
"$$(ICONV_INCLUDE_DIRS)" ""
...
...
rules/distdir-way-opts.mk
View file @
30fad702
...
...
@@ -82,7 +82,7 @@ $1_$2_CC_INC_FLAGS:=$$(shell for i in $$($1_$2_DEP_INCLUDE_DIRS); do echo $$($1_
endif
$1_$2_DIST_CC_OPTS
=
\
$
$(CONF_CC_OPTS)
\
$$
(
CONF_CC_OPTS
_STAGE
$4
)
\
$
$(SRC_CC_OPTS)
\
$$
(
$1_CC_OPTS
)
\
$
$(
foreach
dir
,
$
$(
filter-out
/%,
$$
(
$1_$2_INCLUDE_DIRS
))
,-I
$1
/
$
$(dir)
)
\
...
...
@@ -97,7 +97,7 @@ $1_$2_DIST_LD_LIB_DIRS:=$$(shell for i in $$($1_$2_DEP_LIB_DIRS); do echo \"-L$$
endif
$1_$2_DIST_LD_OPTS
=
\
$
$(CONF_LD_OPTS)
\
$$
(
CONF_LD_OPTS
_STAGE
$4
)
\
$
$(SRC_LD_OPTS)
\
$$
(
$1_LD_OPTS
)
\
$$
(
$1_$2_LD_OPTS
)
\
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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