gcc: build works again
This commit is contained in:
parent
f598a59d81
commit
bab840a411
@ -37,70 +37,6 @@
|
||||
|
||||
#define PORTABLE_INCLUDE_DIR "/sys/include"
|
||||
|
||||
/* C++ : only define values for INCLUDE_DEFAULTS */
|
||||
#ifdef GPLUSPLUS_INCLUDE_DIR
|
||||
# define JEHANNE_ID_GPLUSPLUS { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_GPLUSPLUS
|
||||
#endif
|
||||
#ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
|
||||
# define JEHANNE_ID_GPLUSPLUS_TOOL { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },
|
||||
#else
|
||||
# define JEHANNE_ID_GPLUSPLUS_TOOL
|
||||
#endif
|
||||
#ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
|
||||
# define JEHANNE_ID_GPLUSPLUS_BACKWARD { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_GPLUSPLUS_BACKWARD
|
||||
#endif
|
||||
|
||||
/* GCC's private headers. */
|
||||
#ifdef GCC_INCLUDE_DIR
|
||||
# define JEHANNE_IS_GCC " -isystem" GCC_INCLUDE_DIR
|
||||
# define JEHANNE_ID_GCC { GCC_INCLUDE_DIR, "GCC", 1, 0, 0, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_GCC
|
||||
# define JEHANNE_IS_GCC
|
||||
#endif
|
||||
|
||||
#ifdef PREFIX_INCLUDE_DIR
|
||||
# define JEHANNE_IS_PREFIX " -isystem" PREFIX_INCLUDE_DIR
|
||||
# define JEHANNE_ID_PREFIX { PREFIX_INCLUDE_DIR, 0, 1, 1, 0, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_PREFIX
|
||||
# define JEHANNE_IS_PREFIX
|
||||
#endif
|
||||
|
||||
#if defined (CROSS_INCLUDE_DIR) && defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
|
||||
# define JEHANNE_IS_CROSS " -isystem" CROSS_INCLUDE_DIR
|
||||
# define JEHANNE_ID_CROSS { CROSS_INCLUDE_DIR, "GCC", 1, 0, 0, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_CROSS
|
||||
# define JEHANNE_IS_CROSS
|
||||
#endif
|
||||
|
||||
/* Binutils headers. */
|
||||
#ifdef TOOL_INCLUDE_DIR
|
||||
# define JEHANNE_IS_TOOL " -isystem" TOOL_INCLUDE_DIR
|
||||
# define JEHANNE_ID_TOOL { TOOL_INCLUDE_DIR, "BINUTILS", 1, 1, 0, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_TOOL
|
||||
# define JEHANNE_IS_TOOL
|
||||
#endif
|
||||
|
||||
|
||||
#define JEHANNE_POSIX_INCLUDE_DIR "/posix/include"
|
||||
#define JEHANNE_ID_POSIX { JEHANNE_POSIX_INCLUDE_DIR, 0, 1, 0, 1, 0 },
|
||||
|
||||
#ifdef CROSS_DIRECTORY_STRUCTURE
|
||||
# define JEHANNE_IS_POSIX " -isystem%:getenv(JEHANNE " JEHANNE_POSIX_INCLUDE_DIR ")"
|
||||
# define JEHANNE_POSIX_LIB_DIR "%:getenv(JEHANNE /posix/lib)"
|
||||
#else
|
||||
# define JEHANNE_IS_POSIX " -isystem" JEHANNE_POSIX_INCLUDE_DIR
|
||||
# define JEHANNE_POSIX_LIB_DIR "/posix/lib"
|
||||
#endif
|
||||
|
||||
|
||||
/* INCLUDE_DEFAULTS is used by gcc/cppdefault.c
|
||||
* The struct is defined in gcc/cppdefault.h
|
||||
*
|
||||
@ -126,6 +62,60 @@
|
||||
* headers but with `cplusplus = 1`, to not mess native C compilation
|
||||
* that have to react to the `-9` option.
|
||||
*/
|
||||
|
||||
/* C++ : only define values for INCLUDE_DEFAULTS */
|
||||
#ifdef GPLUSPLUS_INCLUDE_DIR
|
||||
# define JEHANNE_ID_GPLUSPLUS { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_GPLUSPLUS
|
||||
#endif
|
||||
#ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
|
||||
# define JEHANNE_ID_GPLUSPLUS_TOOL { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },
|
||||
#else
|
||||
# define JEHANNE_ID_GPLUSPLUS_TOOL
|
||||
#endif
|
||||
#ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
|
||||
# define JEHANNE_ID_GPLUSPLUS_BACKWARD { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_GPLUSPLUS_BACKWARD
|
||||
#endif
|
||||
|
||||
/* GCC's private headers. */
|
||||
#ifdef GCC_INCLUDE_DIR
|
||||
# define JEHANNE_ID_GCC { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_GCC
|
||||
#endif
|
||||
|
||||
#ifdef PREFIX_INCLUDE_DIR
|
||||
# define JEHANNE_ID_PREFIX { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_PREFIX
|
||||
#endif
|
||||
|
||||
#if defined (CROSS_INCLUDE_DIR) && defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
|
||||
# define JEHANNE_ID_CROSS { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_CROSS
|
||||
#endif
|
||||
|
||||
/* Binutils headers. */
|
||||
#ifdef TOOL_INCLUDE_DIR
|
||||
# define JEHANNE_ID_TOOL { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
|
||||
#else
|
||||
# define JEHANNE_ID_TOOL
|
||||
#endif
|
||||
|
||||
#define JEHANNE_POSIX_INCLUDE_DIR "/posix/include"
|
||||
#define JEHANNE_ID_POSIX { JEHANNE_POSIX_INCLUDE_DIR, 0, 0, 0, 1, 0 },
|
||||
|
||||
#ifdef CROSS_DIRECTORY_STRUCTURE
|
||||
# define JEHANNE_POSIX_LIB_DIR "%:getenv(JEHANNE /posix/lib)"
|
||||
#else
|
||||
# define JEHANNE_POSIX_LIB_DIR "/posix/lib"
|
||||
#endif
|
||||
|
||||
|
||||
#undef INCLUDE_DEFAULTS
|
||||
#define INCLUDE_DEFAULTS \
|
||||
{ \
|
||||
@ -144,20 +134,20 @@
|
||||
|
||||
#undef EXTRA_SPECS
|
||||
#define EXTRA_SPECS \
|
||||
{ "posixly_isystems", JEHANNE_IS_GCC \
|
||||
JEHANNE_IS_POSIX \
|
||||
JEHANNE_IS_PREFIX \
|
||||
JEHANNE_IS_CROSS \
|
||||
JEHANNE_IS_TOOL }, \
|
||||
{ "posixly_lib", "%{!shared:%{g*:-lg} %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}} -lposix" },
|
||||
|
||||
|
||||
/* set CPLUSPLUS_CPP_SPEC to prevent the default fallback to CPP_SPEC */
|
||||
#define CPLUSPLUS_CPP_SPEC ""
|
||||
|
||||
/* These Specs reacts `-9` option by removing POSIX stuff */
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "%{!9:%(posixly_isystems)}"
|
||||
//#undef CPP_SPEC
|
||||
//#define CPP_SPEC "%{!9:%(posixly_isystems)}"
|
||||
|
||||
/* Since -nostdinc++ doesn't exclude C headers but we have cheated
|
||||
* marking them as C++ headers, we need to add them back when
|
||||
* this option is provided
|
||||
*/
|
||||
//#undef CPLUSPLUS_CPP_SPEC
|
||||
//#define CPLUSPLUS_CPP_SPEC "%{nostdinc++:%(posixly_isystems)}"
|
||||
//#define CPLUSPLUS_CPP_SPEC ""
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{!9:-L" JEHANNE_POSIX_LIB_DIR "}"
|
||||
|
@ -76,15 +76,25 @@ echo -n Building libstdc++-v3... | tee -a $LOG
|
||||
mkdir -p $GCC_BUILD_DIR/x86_64-jehanne/libstdc++-v3 &&
|
||||
cd $GCC_BUILD_DIR/x86_64-jehanne/libstdc++-v3 &&
|
||||
rm -f config.cache &&
|
||||
$JEHANNE_TOOLCHAIN/src/gcc/libstdc++-v3/configure --srcdir=$JEHANNE_TOOLCHAIN/src/gcc/libstdc++-v3 --cache-file=./config.cache --enable-multilib --with-cross-host=x86_64-pc-linux-gnu --prefix=/posix --with-sysroot=/ --with-build-sysroot=$JEHANNE --enable-languages=c,c++,lto --program-transform-name='s&^&x86_64-jehanne-&' --disable-option-checking --with-target-subdir=x86_64-jehanne --build=x86_64-pc-linux-gnu --host=x86_64-jehanne --target=x86_64-jehanne &&
|
||||
$JEHANNE_TOOLCHAIN/src/gcc/libstdc++-v3/configure \
|
||||
--srcdir=$JEHANNE_TOOLCHAIN/src/gcc/libstdc++-v3 \
|
||||
--cache-file=./config.cache \
|
||||
--enable-multilib --with-cross-host=x86_64-pc-linux-gnu \
|
||||
--prefix=/posix --with-sysroot=/ --with-build-sysroot=$JEHANNE \
|
||||
--enable-languages=c,c++,lto --program-transform-name='s&^&x86_64-jehanne-&' \
|
||||
--disable-option-checking --with-target-subdir=x86_64-jehanne \
|
||||
--build=x86_64-pc-linux-gnu --host=x86_64-jehanne --target=x86_64-jehanne &&
|
||||
make &&
|
||||
make DESTDIR=$JEHANNE/pkgs/libstdc++-v3/9.2.0/ install
|
||||
) >> $LOG 2>&1
|
||||
failOnError $? "building libstdc++-v3"
|
||||
echo done.
|
||||
|
||||
export PATH=$OPATH
|
||||
|
||||
# Copy to /posix (to emulate bind during cross compilation)
|
||||
cp -pfr $JEHANNE/pkgs/libstdc++-v3/9.2.0/posix/* $JEHANNE/posix
|
||||
cp -pfr $JEHANNE/pkgs/libstdc++-v3/9.2.0/posix/* $JEHANNE_TOOLCHAIN/cross/posix
|
||||
cp -pfr $JEHANNE/pkgs/libstdc++-v3/9.2.0/posix/x86_64-jehanne/* $JEHANNE/posix
|
||||
find $JEHANNE/posix/|grep '\.la$'|xargs rm
|
||||
|
||||
echo -n Building libgmp... | tee -a $LOG
|
||||
@ -182,10 +192,11 @@ echo -n "Building gcc (and libgcc)..." | tee -a $LOG
|
||||
--disable-multiarch --disable-multilib \
|
||||
--disable-shared --disable-threads --disable-tls \
|
||||
--disable-libgomp --disable-werror --disable-nls &&
|
||||
make all-target-libgcc &&
|
||||
make DESTDIR=$JEHANNE/pkgs/gcc/9.2.0/ install-target-libgcc &&
|
||||
make all-gcc &&
|
||||
make DESTDIR=$JEHANNE/pkgs/gcc/9.2.0/ install-gcc &&
|
||||
make all-target-libgcc &&
|
||||
make DESTDIR=$JEHANNE/pkgs/gcc/9.2.0/ install-target-libgcc
|
||||
echo
|
||||
) >> $LOG 2>&1
|
||||
failOnError $? "building gcc"
|
||||
|
||||
|
@ -61,13 +61,15 @@ function failOnError {
|
||||
|
||||
function mergeLibPOSIX {
|
||||
TARGET_LIB=$1
|
||||
echo "Merging $JEHANNE/arch/$ARCH/lib/libposix.a into $TARGET_LIB." &&
|
||||
x86_64-jehanne-ar -M <<EOF
|
||||
open $TARGET_LIB
|
||||
addlib $JEHANNE/arch/$ARCH/lib/libposix.a
|
||||
save
|
||||
end
|
||||
EOF
|
||||
# echo "Merging $JEHANNE/arch/$ARCH/lib/libposix.a into $TARGET_LIB." &&
|
||||
|
||||
# x86_64-jehanne-ar -M <<EOF
|
||||
#open $TARGET_LIB
|
||||
#addlib $JEHANNE/arch/$ARCH/lib/libposix.a
|
||||
#save
|
||||
#end
|
||||
#EOF
|
||||
|
||||
}
|
||||
|
||||
if [ "$NEWLIB_OPTIMIZATION" = "" ]; then
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit d9c194a0b04a2a66803f7a22bae7069e24642065
|
||||
Subproject commit ded03c70bfd4d7d61cf5c0f051797affcda6fa05
|
Loading…
x
Reference in New Issue
Block a user