summaryrefslogtreecommitdiffstats
path: root/gnu/gcc/BUILD
blob: 9c851b2b15c5878a957a3205f06a72c14e41bf23 (plain) (blame)
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# using -pipe causes spurious test-suite failures
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565
CFLAGS=${CFLAGS/-pipe/}     &&
CXXFLAGS=${CXXFLAGS/-pipe/} &&

if list_find "$GCC_COMPILER" "java"; then
  OPTS+=" --enable-libgcj" &&
  OPTS+=" --disable-plugin"
else
  OPTS+=" --disable-libgcj" &&
  OPTS+=" --enable-plugin"
fi &&

if list_find "$GCC_COMPILER" "fortran"; then
  OPTS+=" --enable-libquadmath"
else
  OPTS+=" --disable-libquadmath"
fi &&

persistent_read gmp GMP_BUILD_ARCH GMP_BUILD_ARCH         &&
persistent_read mpfr MPFR_BUILD_ARCH MPFR_BUILD_ARCH      &&

if [[ $GMP_BUILD_ARCH  != ${SMGL_COMPAT_ARCHS[4]}
   || $MPFR_BUILD_ARCH != ${SMGL_COMPAT_ARCHS[4]} ]]; then
  message "${PROBLEM_COLOR}" 1>&2 &&
  message "gmp and/or mpfr have been built with a different archspec, building gcc now" 1>&2 &&
  message "would result in a broken compiler" 1>&2 &&
  message "${DEFAULT_COLOR}" 1>&2
  return 1
fi                                                        &&

# install gcc libraries to /lib instead of /lib64
sedit "s/lib64/lib/" gcc/config/i386/linux64.h  &&
# tell gcc to target binaries to expect the linker in /lib instead of /lib64
sedit "s/lib64/lib/" gcc/config/i386/t-linux64  &&

if  [[ "$ARCHITECTURE"  ==  "pentium4"  ||
       "$ARCHITECTURE"  ==  "pentium-m"  ]];  then
  CFLAGS=${CFLAGS//-ffast-math/}
  CXXFLAGS=${CXXFLAGS//-ffast-math/}
fi  &&

# fixes seg-fault on libiberty/splay.c in v 4.3.2
CFLAGS="-O1 $CFLAGS"  &&

if [[ $CROSS_INSTALL == on ]]; then
  OPTS="--host=$HOST $OPTS"
else
  OPTS="--build=$HOST $OPTS"
fi  &&

# store CFLAGS and LDFLAGS persistently so they can be read by the other
# split spells later, see bug #10087
GCC_CFLAGS="$CFLAGS"  &&
GCC_LDFLAGS="$LDFLAGS"  &&
persistent_add GCC_CFLAGS GCC_LDFLAGS  &&
# when updating this spell please check if this is still necessary:
if [[ $GCJ_AWT == y ]]; then
  CFLAGS="$CFLAGS -I${INSTALL_ROOT}/usr/include/freetype2"
fi  &&

if list_find "$GCC_COMPILER" "ada" ; then
  # setup bootstrap ada compiler
  ADA_PATH=${SOURCE13/.tar.bz2/}  &&
  PATH=$SOURCE_DIRECTORY/$ADA_PATH/usr/bin:$PATH  &&

  export CC="$SOURCE_DIRECTORY/$ADA_PATH/bin/gcc" &&

  export INCLUDE_DIR="$SOURCE_DIRECTORY/$ADA_PATH/lib/gcc/$HOST/${VERSION13}/include"  &&
  export LIB_DIR="$SOURCE_DIRECTORY/$ADA_PATH/lib/gcc/$HOST/${VERSION13}/"  &&
  export LDFLAGS="-L${LIB_DIR}"  &&
  export LIBRARY_PATH="$LIB_DIR"  &&
  export LD_LIBRARY_PATH="$LIB_DIR"  &&
  export COMPILER_PATH="$SOURCE_DIRECTORY/$ADA_PATH/bin"  &&

  export ADA_OBJECTS_PATH="$LIB_DIR/adalib"  &&
  export ADA_INCLUDE_PATH="$LIB_DIR/adainclude"  &&

  OPTS="--enable-libada $OPTS"

fi  &&

OPTS="$GCJ_HOME $OPTS"                                               &&
OPTS="--prefix=${INSTALL_ROOT}/usr $OPTS"                          &&
OPTS="--libdir=${INSTALL_ROOT}/usr/lib $OPTS"                      &&
OPTS="--libexecdir=${INSTALL_ROOT}/usr/lib $OPTS"                  &&
OPTS="--mandir=${INSTALL_ROOT}/usr/share/man $OPTS"                &&
OPTS="--infodir=${INSTALL_ROOT}/usr/share/info $OPTS"              &&
OPTS="--with-bugurl=http://bugs.sourcemage.org $OPTS"              &&
OPTS="--enable-languages=$(echo ${GCC_COMPILER} | tr " " ","),lto $OPTS" &&
OPTS="--enable-shared $OPTS"                                       &&
OPTS="--enable-threads=posix $OPTS"                                &&
OPTS="--enable-__cxa_atexit $OPTS"                                 &&
OPTS="--enable-clocale=gnu $OPTS"                                  &&
OPTS="--disable-libstdcxx-pch $OPTS"                               &&
OPTS="--enable-bootstrap $OPTS"                                    &&
OPTS="--enable-gnu-unique-object $OPTS"                            &&
OPTS="--enable-linker-build-id $OPTS"                              &&
if [[ "$GCC_CLOOG" == "y" ]]; then
  OPTS="--enable-cloog-backend=isl $OPTS"  &&
  OPTS="--disable-isl-version-check $OPTS"
else
  OPTS="--without-cloog $OPTS"
fi &&
OPTS="--enable-lto $OPTS"                                          &&
OPTS="--with-linker-hash-style=gnu $OPTS"                          &&
OPTS="--disable-werror $OPTS"                                      &&
OPTS="--enable-checking=release $OPTS"                             &&
OPTS="$GCC_MULTILIB $OPTS"                                         &&

cd $SOURCE_DIRECTORY.bld                                              &&
$SOURCE_DIRECTORY/configure $OPTS                                     &&

if [[ "$GCC_TARGET" == "profiledbootstrap" ]] ||
   [[ "$GCC_TARGET" == "profiledbootstrap-lean" ]] ; then
  make_single 
fi  &&
echo "$MAKE_NJOBS  $JOBS_PER_HOST" &&
make CFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" $GCC_TARGET &&
make_normal