Merge branch 'package-management'

This commit is contained in:
Ingo Weinhold 2013-09-27 01:54:26 +02:00
commit 6d82b40597
25 changed files with 1614 additions and 1356 deletions

View File

@ -1,4 +1,4 @@
How to build gcc-2.95.3 for BeOS:
How to build gcc-2.95.3 for Haiku:
cd into the buildtools/legacy folder
@ -13,7 +13,7 @@ compile binutils:
mkdir binutils-obj
cd binutils-obj
LC_ALL=POSIX CFLAGS="-O2" CXXFLAGS="-O2" ../binutils/configure \
--prefix=/boot/develop/abi/x86/gcc2/tools/gcc-2.95.3-haiku-${GCCDATE} \
--prefix=/boot/common/develop/tools/gcc-2.95.3-${GCCDATE} \
--disable-nls --enable-shared=yes
LC_ALL=POSIX make
cd ..
@ -24,14 +24,14 @@ compile gcc:
mkdir gcc-obj
cd gcc-obj
LC_ALL=POSIX CFLAGS="-O2" CXXFLAGS="-O2" ../gcc/configure \
--prefix=/boot/develop/abi/x86/gcc2/tools/gcc-2.95.3-haiku-${GCCDATE} \
--prefix=/boot/common/develop/tools/gcc-2.95.3-${GCCDATE} \
--disable-nls --enable-shared=yes --enable-languages=c,c++
LC_ALL=POSIX make bootstrap
# the above will fail when compiling builtinbuf.cc, but we can ignore that
# since it's trying to build libstdc++.so, which haiku provides anyway
cd ..
Ok, now everything is compiled and ready, waiting to be installed:
Ok, now everything is compiled and ready, waiting to be packaged:
mkdir /boot/develop/abi/x86/gcc2/tools/gcc-2.95.3-haiku-${GCCDATE}
cd binutils-obj

View File

@ -1,171 +0,0 @@
#!/bin/sh
# Builds a GCC package from the installation specified by $GCCDATE (or via the
# arguments).
# Usage: build-gcc2-optional-package-Haiku.sh [gcc-base-dir] [version]
if [ -d "$1" ]; then
gcc_base=$1
shift
fi
if [ "$(basename $(pwd))" = "buildtools" ]; then
gcc_base=$(pwd)/legacy/gcc-obj
echo "No exact GCC build directory given, assuming \"$gcc_base\""
echo " (only needed for the HTML documentation)."
fi
if [ "$1" == "" ]; then
if [ "$GCCDATE" = "" ]; then
echo "No GCC date version given!"
echo "Either export GCCDATE, or pass the date as argument to this" \
"script."
echo "The date is given in the format 'yymmdd', ie. '100818'."
exit
fi
else
GCCDATE=$1
fi
current_dir=$(pwd)
base=/boot/develop/abi/x86/gcc2/tools/gcc-2.95.3-haiku-$GCCDATE
if [ ! -d "$base" ]; then
echo GCC directory \"$base\" does not exist, so we start a build ...
echo "This is going to take a while ..."
sleep 3
# From now on fail, if anything goes wrong.
set -o errexit
# forcefeed the POSIX locale, as the build (makeinfo) might choke otherwise
export LC_ALL=POSIX
cd $gcc_base/..
rm -rf binutils-obj
mkdir binutils-obj
cd binutils-obj
CFLAGS="-O2" CXXFLAGS="-O2" ../binutils/configure \
--prefix=/boot/develop/abi/x86/gcc2/tools/gcc-2.95.3-haiku-${GCCDATE} \
--disable-nls --enable-shared=yes
make
cd ..
(cd gcc/gcc; touch c-parse.{h,c} cexp.c cp/parse.{c,h} c-gperf.h)
rm -rf gcc-obj
mkdir gcc-obj
cd gcc-obj
CFLAGS="-O2" CXXFLAGS="-O2" ../gcc/configure \
--prefix=/boot/develop/abi/x86/gcc2/tools/gcc-2.95.3-haiku-${GCCDATE} \
--disable-nls --enable-shared=yes --enable-languages=c,c++
# hack the Makefile to avoid trouble with stuff we don't need anyway
sedExpr=
for toRemove in libio libjava libobjc libstdc++; do
sedExpr="$sedExpr -e 's@^\(TARGET_CONFIGDIRS =.*\)$toRemove\(.*\)@\1\2@'"
done
echo sedExpr: $sedExpr
mv Makefile Makefile.bak || exit 1
eval "sed $sedExpr Makefile.bak > Makefile" || exit 1
rm Makefile.bak
# build gcc
make bootstrap
cd ..
mkdir /boot/develop/abi/x86/gcc2/tools/gcc-2.95.3-haiku-${GCCDATE}
cd binutils-obj
make install
cd ..
cd gcc-obj
make install
cd ..
ln -sfn gcc-2.95.3-haiku-${GCCDATE} /boot/develop/abi/x86/gcc2/tools/current
fi
### HTML documentation ####################################
html_base=$base/html-docs
if [ ! -d "$html_base" ]; then
if [ "$gcc_base" = "" ]; then
echo "No GCC build directory given, cannot build HTML documenation."
exit
fi
echo "Building HTML documentation..."
mkdir $html_base
cd $html_base
makeinfo --html $gcc_base/../gcc/gcc/cpp.texi
makeinfo --html $gcc_base/../gcc/gcc/gcc.texi
makeinfo --html $gcc_base/../binutils/libiberty/libiberty.texi
ln -sf cpp/index.html $html_base/cpp.html
ln -sf gcc/index.html $html_base/gcc.html
ln -sf libiberty/index.html $html_base/libiberty.html
fi
if [ -d "$base/share/doc" ]; then
echo "Adding binutils HTML documentation..."
mv $base/share/doc/as.html $html_base/as
mv $base/share/doc/binutils.html $html_base/binutils
mv $base/share/doc/gprof.html $html_base/gprof
mv $base/share/doc/ld.html $html_base/ld
#mv $base/share/doc/configure.html $html_base/
ln -sf as/index.html $html_base/as.html
ln -sf binutils/index.html $html_base/binutils.html
ln -sf gprof/index.html $html_base/gprof.html
ln -sf ld/index.html $html_base/ld.html
fi
if [ ! -e "$html_base/as.html" ]; then
echo "binutils HTML documentation missing, see" \
"INSTALL-gcc2-from-source-Haiku."
fi
if [ -d $base/man -o -d $base/info -o -d $base/share ]; then
echo "Removing legacy files (man/info/share)..."
rm -rf $base/man
rm -rf $base/info
rm -rf $base/share
fi
rm -f $base/lib/gcc-lib/i586-pc-haiku/2.95.3-haiku-$GCCDATE/include/math.h
### C++ includes ######################################
echo "Install C++ includes"
rm -rf $base/include/g++
ln -snf /boot/develop/headers/cpp $base/include/g++
### zip archive ###########################################
echo "Building ZIP archive..."
current_gcc=$(setgcc | cut -d/ -f 2)
version_year=20$(echo $GCCDATE | cut -c1-2)
version_month=$(echo $GCCDATE | cut -c3-4)
version_day=$(echo $GCCDATE | cut -c5-6)
zip_name="$current_dir/gcc-2.95.3-x86-$current_gcc-$version_year-$version_month-$version_day.zip"
cd /boot
zip_base=$(echo $base | cut -d/ -f3-)
rm -f $zip_name
zip -yr $zip_name $zip_base
current_name=develop/abi/x86/gcc2/tools/current
ln -snf gcc-2.95.3-haiku-$GCCDATE $current_name
zip -yr $zip_name $current_name
### optional package description ##########################
echo "Package: GCC
Version: 2.95.3-haiku-$GCCDATE
Copyright: 1988-2000 Free Software Foundation, Inc.
License: GNU GPL v2
License: GNU LGPL v2
URL: http://www.gnu.org/software/gcc/" > /tmp/.OptionalPackageDescription
cd /tmp
zip -yr $zip_name .OptionalPackageDescription
rm .OptionalPackageDescription

180
build-gcc2-package-Haiku.sh Executable file
View File

@ -0,0 +1,180 @@
#!/bin/sh
# Builds a GCC package from the sources.
#
# Usage: build-gcc2-package-Haiku.sh <version date> <release>
# <version date> must be version date string formatted YYMMDD.
# <release> must be a number between 1 and 99.
# get version date and release parameters
if [ $# -ne 2 ]; then
echo "Usage: $0 <version date YYMMDD> <release>" >&2
exit 1
fi
export GCCDATE=$1
release=$2
# get current dir and buildtools dir
currentDir="$(pwd)/build-gcc-package"
rm -rf "$currentDir"
mkdir "$currentDir"
cd "$(dirname $0)"
buildtoolsDir="$(pwd)/legacy"
cd "$currentDir"
# prepare an install dir with a .PackageInfo
installDir="$currentDir/install"
rm -rf "$installDir"
mkdir "$installDir"
version=2.95.3_${GCCDATE}
packageInfoFile="package-info"
cat > "$packageInfoFile" << ENDOFHERE
name gcc
version $version-$release
architecture x86_gcc2
summary "c/c++ compiler"
description "standard compiler for x86_gcc2 platform, ABI-compatible with BeOS R5"
packager "Oliver Tappe <zooey@hirschkaefer.de>"
vendor "Haiku Project"
copyrights "1988-2000 Free Software Foundation, Inc."
licenses {
"GNU GPL v2"
"GNU LGPL v2"
}
provides {
gcc = $version compat >= 2.95.3
binutils = 2.17_$GCCDATE compat >= 2.17
}
requires {
haiku >= r1-alpha3
haiku-devel >= r1-alpha3
}
ENDOFHERE
# create a build package
versionedPackageName=gcc-$version-$release
packageFileName="$versionedPackageName-x86_gcc2.hpkg"
packageFile="$currentDir/$packageFileName"
echo "Creating build package..."
package create -b -I "$installDir" -i "$packageInfoFile" $packageFile ||
exit 1
# activate the package
rm -f /boot/common/packages/$packageFileName
ln -s "$packageFile" /boot/common/packages
finalInstallDir="/packages/$versionedPackageName/.self"
sleep 1
if [ ! -e "$finalInstallDir" ]; then
echo "Activating the build package failed!"
exit 1
fi
gccInstallDir="$finalInstallDir/develop/tools/gcc-2.95.3-${GCCDATE}"
mkdir -p "$gccInstallDir"
# build binutils
mkdir binutils-obj
cd binutils-obj
CFLAGS="-O2" CXXFLAGS="-O2" "$buildtoolsDir/binutils/configure" \
--prefix=$gccInstallDir \
--disable-nls --enable-shared=yes || exit 1
make || exit 1
make install || exit 1
cd ..
# build gcc
mkdir gcc-obj
cd gcc-obj
CFLAGS="-O2" CXXFLAGS="-O2" "$buildtoolsDir/gcc/configure" \
--prefix=$gccInstallDir \
--disable-nls --enable-shared=yes --enable-languages=c,c++ || exit 1
make bootstrap
# the above will fail when compiling builtinbuf.cc, but we can ignore that
# since it's trying to build libstdc++.so, which haiku provides anyway
make install || exit 1
cd ..
base=$gccInstallDir
### HTML documentation ####################################
html_base=$base/html-docs
if [ ! -d "$html_base" ]; then
echo "Building HTML documentation..."
mkdir $html_base
cd $html_base
makeinfo --html "$buildtoolsDir/gcc/gcc/cpp.texi"
makeinfo --html "$buildtoolsDir/gcc/gcc/gcc.texi"
makeinfo --html "$buildtoolsDir/binutils/libiberty/libiberty.texi"
makeinfo --force --html "$buildtoolsDir/gcc/libio/iostream.texi"
ln -sf cpp/index.html $html_base/cpp.html
ln -sf gcc/index.html $html_base/gcc.html
ln -sf libiberty/index.html $html_base/libiberty.html
ln -sf iostream/index.html $html_base/iostream.html
fi
if [ -d "$base/share/doc" ]; then
echo "Adding binutils HTML documentation..."
mv $base/share/doc/as.html $html_base/as
mv $base/share/doc/binutils.html $html_base/binutils
mv $base/share/doc/gprof.html $html_base/gprof
mv $base/share/doc/ld.html $html_base/ld
#mv $base/share/doc/configure.html $html_base/
ln -sf as/index.html $html_base/as.html
ln -sf binutils/index.html $html_base/binutils.html
ln -sf gprof/index.html $html_base/gprof.html
ln -sf ld/index.html $html_base/ld.html
fi
if [ ! -e "$html_base/as.html" ]; then
echo "binutils HTML documentation missing, see" \
"INSTALL-gcc2-from-source-Haiku."
fi
### Cleanup ###############################################
echo "Cleanup"
cd $base/bin
for binary in ../i586-pc-haiku/bin/*; do
ln -sfn $binary .
done
if [ -d $base/man -o -d $base/info -o -d $base/share ]; then
rm -rf $base/man
rm -rf $base/info
rm -rf $base/share
fi
rm -f $base/lib/gcc-lib/i586-pc-haiku/2.95.3-haiku-$GCCDATE/include/math.h
### C++ includes ######################################
echo "Install C++ includes & library"
rm -rf $base/include/g++
ln -snf /boot/system/develop/headers/c++/2.95.3 $base/include/g++
ln -snf /boot/system/lib/libstdc++.r4.so $base/lib/
ln -snf /boot/system/lib/libstdc++.so $base/lib/
### package ###########################################
echo "Building package ..."
cd "$currentDir"
mimeset -F "$installDir"
package create -C "$installDir" -i "$packageInfoFile" $packageFile || exit 1
echo "Built package $packageInfoFile successfully."

View File

@ -98,6 +98,8 @@ build_objdir := $(toplevel_builddir)/$(build_subdir)
build_libobjdir := $(toplevel_builddir)/$(build_libsubdir)
target_objdir := $(toplevel_builddir)/$(target_subdir)
HYBRID_SECONDARY = @HYBRID_SECONDARY@
# --------
# Defined vpaths
# --------
@ -2102,6 +2104,10 @@ DRIVER_DEFINES = \
`test "X$${SHLIB}" = "X" || test "@enable_shared@" != "yes" || echo "-DENABLE_SHARED_LIBGCC"` \
-DCONFIGURE_SPECS="\"@CONFIGURE_SPECS@\""
ifneq ($(HYBRID_SECONDARY),)
DRIVER_DEFINES += -DHYBRID_SECONDARY="\"$(HYBRID_SECONDARY)\""
endif
gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \
Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \
configargs.h $(OBSTACK_H) $(OPTS_H) $(DIAGNOSTIC_H) $(VEC_H) $(PARAMS_H)
@ -3959,7 +3965,7 @@ $(genprogerr:%=build/gen%$(build_exeext)): $(BUILD_ERRORS)
genprog = $(genprogerr) check checksum condmd
# These programs need libs over and above what they get from the above list.
build/genautomata$(build_exeext) : BUILD_LIBS += @math_library@
build/genautomata$(build_exeext) : BUILD_LIBS += @build_math_library@
# These programs are not linked with the MD reader.
build/gengtype$(build_exeext) : build/gengtype-lex.o build/gengtype-parse.o \
@ -4008,6 +4014,10 @@ PREPROCESSOR_DEFINES = \
-DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
@TARGET_SYSTEM_ROOT_DEFINE@
ifneq ($(HYBRID_SECONDARY),)
PREPROCESSOR_DEFINES += -DHYBRID_SECONDARY="\"$(HYBRID_SECONDARY)\""
endif
CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s)
cppbuiltin.o: cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(TREE_H) cppbuiltin.h Makefile

View File

@ -68,105 +68,131 @@ Boston, MA 02111-1307, USA. */
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend.o%s crtn.o%s"
/* For native compiler, use standard Haiku include file search paths
rooted in /boot/develop/headers. For a cross compiler, don't
expect the host to use the Haiku directory scheme, and instead look
for the Haiku include files relative to TOOL_INCLUDE_DIR. Yes, we
use ANSI string concatenation here (FIXME) */
#ifndef CROSS_DIRECTORY_STRUCTURE
#undef INCLUDE_DEFAULTS
#ifdef HYBRID_SECONDARY
/* For a secondary compiler on a hybrid system, use alternative search paths.*/
#define INCLUDE_DEFAULTS \
{ \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
{ GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
{ FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, \
{ "/boot/common/include", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/app", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/device", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/drivers", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/game", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/interface", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/kernel", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/locale", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/mail", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/media", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/midi", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/midi2", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/net", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/opengl", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/storage", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/support", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/translation", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/add-ons/graphics", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/add-ons/input_server", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/add-ons/screen_saver", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/add-ons/tracker", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/be_apps/Deskbar", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/be_apps/NetPositive", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/be_apps/Tracker", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/cpp", 0, 1, 1, 0, 0 }, \
{ "/boot/develop/headers/3rdparty", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/bsd", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/glibc", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/gnu", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/posix", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers", 0, 0, 0, 0, 0 }, \
{ "/boot/common/non-packaged/develop/headers/" HYBRID_SECONDARY, 0, 0, 0, 1, 0 }, \
{ "/boot/common/develop/headers/" HYBRID_SECONDARY, 0, 0, 0, 1, 0 }, \
{ "/boot/system/develop/headers/os", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/app", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/device", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/drivers", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/game", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/interface", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/kernel", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/locale", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/mail", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/media", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/midi", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/midi2", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/net", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/opengl", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/storage", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/support", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/translation", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/graphics", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/input_server", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/mail_daemon", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/registrar", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/screen_saver", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/tracker", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/be_apps/Deskbar", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/be_apps/NetPositive", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/be_apps/Tracker", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/3rdparty", 0, 0, 0, 1, 0 }, \
{ "/boot/system/develop/headers/bsd", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/glibc", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/gnu", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/posix", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/" HYBRID_SECONDARY, 0, 0, 0, 1, 0 }, \
{ "/boot/system/develop/headers", 0, 0, 0, 1, 0 }, \
{ 0, 0, 0, 0, 0, 0 } \
}
#else /* CROSS_DIRECTORY_STRUCTURE */
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \
{ GCC_INCLUDE_DIR, "GCC", 0, 0, 1, 0 }, \
{ FIXED_INCLUDE_DIR, "GCC", 0, 0, 1, 0 }, \
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/app", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/device", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/drivers", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/game", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/interface", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/kernel", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/locale", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/mail", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/media", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/midi", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/midi2", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/net", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/support", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/translation", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/add-ons/input_server", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/add-ons/screen_saver", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/add-ons/tracker", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/cpp", 0, 1, 1, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/3rdparty", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/bsd", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/glibc", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/gnu", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/posix", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR , 0, 0, 0, 1, 0 }, \
}
#else /* HYBRID_SECONDARY */
/* For both native and cross compiler, use standard Haiku include file
search paths.
For a cross compiler, it is expected that an appropriate sysroot has
been configured (e.g. /boot/system/develop/cross/x86) which will
be appended to each search folder given below. */
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
{ GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
{ FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, \
{ "/boot/common/non-packaged/develop/headers", 0, 0, 0, 1, 0 }, \
{ "/boot/common/develop/headers", 0, 0, 0, 1, 0 }, \
{ "/boot/system/develop/headers/os", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/app", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/device", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/drivers", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/game", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/interface", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/kernel", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/locale", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/mail", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/media", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/midi", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/midi2", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/net", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/opengl", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/storage", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/support", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/translation", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/graphics", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/input_server", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/mail_daemon", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/registrar", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/screen_saver", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/add-ons/tracker", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/be_apps/Deskbar", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/be_apps/NetPositive", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/os/be_apps/Tracker", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/3rdparty", 0, 0, 0, 1, 0 }, \
/* TODO: To be removed when libtiff has been outsourced. */\
{ "/boot/system/develop/headers/bsd", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/glibc", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/gnu", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers/posix", 0, 0, 1, 1, 0 }, \
{ "/boot/system/develop/headers", 0, 0, 0, 1, 0 }, \
{ 0, 0, 0, 0, 0, 0 } \
}
#endif /* CROSS_DIRECTORY_STRUCTURE */
}
#endif /* HYBRID_SECONDARY */
/* Whee. LIBRARY_PATH is Be's LD_LIBRARY_PATH, which of course will
cause nasty problems if we override it. */
#define LIBRARY_PATH_ENV "BELIBRARIES"
/* With STANDARD_STARTFILE_PREFIX_{1,2} set to "/boot/common/develop/lib/"
and "/boot/system/develop/lib/", MD_STARTFILE_PREFIX adds the last one of the
standard paths. The user specific paths are set via LIBRARY_PATH_ENV. */
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#undef MD_STARTFILE_PREFIX
#undef STARTFILE_PREFIX_SPEC
#ifdef HYBRID_SECONDARY
/* For a secondary compiler on a hybrid system, use alternative search paths.*/
#define STANDARD_STARTFILE_PREFIX_1 \
"/boot/common/develop/lib/" HYBRID_SECONDARY "/"
#define STANDARD_STARTFILE_PREFIX_2 \
"/boot/system/develop/lib/" HYBRID_SECONDARY "/"
#define MD_STARTFILE_PREFIX \
"/boot/common/non-packaged/develop/lib/" HYBRID_SECONDARY "/"
#else /* HYBRID_SECONDARY */
#define STANDARD_STARTFILE_PREFIX_1 "/boot/common/develop/lib/"
#define STANDARD_STARTFILE_PREFIX_2 "/boot/system/develop/lib/"
#define MD_STARTFILE_PREFIX "/boot/common/non-packaged/develop/lib/"
#endif /* HYBRID_SECONDARY */
/* Haiku doesn't have a separate math library. */
#define MATH_LIBRARY ""

View File

@ -1,4 +1,4 @@
# There are system headers elsewhere, but these are the ones that
# we are most likely to want to apply any fixes to.
NATIVE_SYSTEM_HEADER_DIR = /boot/develop/headers
NATIVE_SYSTEM_HEADER_DIR = /boot/system/develop/headers
LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/posix/limits.h ]

49
gcc/gcc/configure vendored
View File

@ -599,7 +599,6 @@ ac_includes_default="\
#endif"
ac_subst_vars='LTLIBOBJS
math_library
LIBOBJS
enable_plugin
pluginlibs
@ -735,6 +734,7 @@ LDEXP_LIB
EXTRA_GCC_LIBS
GNAT_LIBEXC
COLLECT2_LIBS
build_math_library
CXXCPP
AR
NM
@ -770,6 +770,7 @@ with_cpu
enable_multiarch
enable_multilib
ENABLE_BUILD_WITH_CXX
HYBRID_SECONDARY
coverage_flags
valgrind_command
valgrind_path_defines
@ -876,6 +877,7 @@ enable_werror_always
enable_checking
enable_coverage
enable_gather_detailed_mem_stats
with_hybrid_secondary
enable_build_with_cxx
with_stabs
enable_multilib
@ -1652,6 +1654,8 @@ Optional Packages:
--with-demangler-in-ld try to use demangler in GNU ld
--with-gnu-as arrange to work with GNU as
--with-as arrange to use the specified as (full pathname)
--with-hybrid_secondary specify the packaging architecture for building a
secondary compiler for a Haiku hybrid system
--with-stabs arrange to use stabs instead of host debug format
--with-dwarf2 force the default debug format to be DWARF 2
--with-native-system-header-dir=dir
@ -7001,6 +7005,18 @@ fi
# Miscenalleous configure options
# -------------------------------
# handle --with-hybrid-secondary
# Check whether --with-hybrid_secondary was given.
if test "${with_hybrid_secondary+set}" = set; then :
withval=$with_hybrid_secondary; HYBRID_SECONDARY=$withval
else
HYBRID_SECONDARY=
fi
# See if we are building gcc with C++.
# Check whether --enable-build-with-cxx was given.
if test "${enable_build_with_cxx+set}" = set; then :
@ -8829,12 +8845,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
# UNSORTED
# --------
# Configure -lm usage for host tools that need it
math_library="-lm"
case $host in
build_math_library="-lm"
case $build in
*-*-haiku*)
# no separate math library needed
math_library=
build_math_library=
;;
esac
@ -15127,7 +15144,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
esac
;;
beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
@ -17252,9 +17269,16 @@ gnu*)
;;
haiku*)
library_names_spec='${libname}${shared_ext}'
dynamic_linker="$host_os ld.so"
version_type=linux
need_lib_prefix=no
need_version=no
dynamic_linker="$host_os runtime_loader"
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
hardcode_into_libs=yes
;;
hpux9* | hpux10* | hpux11*)
@ -17771,7 +17795,7 @@ else
lt_cv_dlopen_libs=
case $host_os in
beos*)
beos* | haiku* )
lt_cv_dlopen="load_add_on"
lt_cv_dlopen_libs=
lt_cv_dlopen_self=yes
@ -18049,7 +18073,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 18049 "configure"
#line 18076 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -18155,7 +18179,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 18155 "configure"
#line 18182 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -19101,8 +19125,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
haiku*)
archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
link_all_deplibs_CXX=yes
allow_undefined_flag_CXX=unsupported
archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
;;
hpux9*)
@ -19968,7 +19992,6 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
;;
esac
;;
beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;

View File

@ -597,6 +597,15 @@ fi
# Miscenalleous configure options
# -------------------------------
# handle --with-hybrid-secondary
AC_ARG_WITH(hybrid_secondary,
[AS_HELP_STRING([--with-hybrid_secondary],
[specify the packaging architecture for building a secondary compiler for a Haiku hybrid system])],
[HYBRID_SECONDARY=$withval],
[HYBRID_SECONDARY=]
)
AC_SUBST(HYBRID_SECONDARY)
# See if we are building gcc with C++.
AC_ARG_ENABLE(build-with-cxx,
[AS_HELP_STRING([--enable-build-with-cxx],
@ -992,13 +1001,14 @@ AC_LANG_POP(C++)
# Configure -lm usage for host tools that need it
math_library="-lm"
case $host in
build_math_library="-lm"
case $build in
*-*-haiku*)
# no separate math library needed
math_library=
build_math_library=
;;
esac
AC_SUBST(build_math_library)
# These libraries may be used by collect2.
# We may need a special search path to get them linked.

View File

@ -41,11 +41,13 @@ extern "C" {
# define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c)
# define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f)
#else /* not DOSish */
//# if defined(__APPLE__)
//# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
//# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
//# endif
//# endif /* __APPLE__ */
# if defined(__APPLE__)
/*
# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
# endif
*/
# endif /* __APPLE__ */
# define HAS_DRIVE_SPEC(f) (0)
# define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c)
# define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f)

View File

@ -43,7 +43,7 @@ static char* pop_string(string_list *list);
/*! \brief Reads a line from the supplied file and writes it to the supplied
buffer.
If the line end in a LF, it is chopped off.
If the line ends in a LF, it is chopped off.
\param file The file.
\param value The pointer to where the read value shall be written.
@ -299,7 +299,6 @@ delete_jamfile_cache(jamfile_cache* cache)
if (cache->entries)
hashdone(cache->entries);
delete_string_list(cache->filenames);
free(cache->cache_file);
}
}
@ -445,6 +444,11 @@ read_file(const char *filename, string_list* list)
len++;
line[len] = '\0';
}
if ((size_t)len + 1 == sizeof(buffer)) {
fprintf(stderr, "error: %s:%d: line too long!\n", filename,
list->count + 1);
exit(1);
}
// copy it
string = (char*)malloc(len + 1);
if (string) {
@ -638,8 +642,49 @@ get_jcache(void)
jamfileCache = new_jamfile_cache();
if (jamfileCache && !jamfileCache->cache_file) {
char* filename = jcache_name();
if (filename)
read_jcache(jamfileCache, filename);
if (filename) {
if (!read_jcache(jamfileCache, filename)) {
// An error occurred while reading the cache file. Remove all
// entries that we read in, assuming they might be corrupted.
// Since the hash doesn't support removing entries, we create
// a new one and copy over the entries we want to keep.
int count = jamfileCache->filenames->count;
int i;
jamfile_cache* newCache = new_jamfile_cache();
if (!newCache) {
fprintf(stderr, "Out of memory!\n");
exit(1);
}
for (i = 0; i < count; i++) {
char* entryname = jamfileCache->filenames->strings[i];
jcache_entry* entry = find_jcache_entry(jamfileCache,
entryname);
if (entry->used) {
jcache_entry newEntry;
if (!init_jcache_entry(&newEntry, entryname,
entry->time, entry->used)) {
fprintf(stderr, "Out of memory!\n");
exit(1);
}
delete_string_list(newEntry.strings);
newEntry.strings = entry->strings;
entry->strings = 0;
if (!add_jcache_entry(newCache, &newEntry)) {
fprintf(stderr, "Out of memory!\n");
exit(1);
}
}
}
delete_jamfile_cache(jamfileCache);
jamfileCache = newCache;
jamfileCache->cache_file = filename;
}
}
}
return jamfileCache;
}

View File

@ -2836,7 +2836,7 @@ fi
# Define the identity of the package.
PACKAGE=bfd
VERSION=2.17-haiku-20100420
VERSION=2.17-haiku-2013_04_21
cat >>confdefs.h <<_ACEOF

View File

@ -1,7 +1,4 @@
This is
/home/bonefish/develop/haiku/buildtools/legacy/binutils/bfd/doc/bfd.info,
produced by makeinfo version 4.9 from
/home/bonefish/develop/haiku/buildtools/legacy/binutils/bfd/doc/bfd.texinfo.
This is /home/zooey/Sources/haiku/buildtools.pm/legacy/binutils/bfd/doc/bfd.info, produced by makeinfo version 4.13 from /home/zooey/Sources/haiku/buildtools.pm/legacy/binutils/bfd/doc/bfd.texinfo.
START-INFO-DIR-ENTRY
* Bfd: (bfd). The Binary File Descriptor library.
@ -14,8 +11,8 @@ END-INFO-DIR-ENTRY
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".

@ -6841,9 +6838,9 @@ The linker proper will call the `_bfd_link_add_symbols' entry point for
each object file or archive which is to be linked (typically these are
the files named on the command line, but some may also come from the
linker script). The entry point is responsible for examining the file.
For an object file, BFD must add any relevant symbol information to
the hash table. For an archive, BFD must determine which elements of
the archive should be used and adding them to the link.
For an object file, BFD must add any relevant symbol information to the
hash table. For an archive, BFD must determine which elements of the
archive should be used and adding them to the link.
The a.out version of this entry point is
`NAME(aout,link_add_symbols)'.
@ -8728,20 +8725,19 @@ Appendix A GNU Free Documentation License
H. Include an unaltered copy of this License.
I. Preserve the section entitled "History", and its title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page.
If there is no section entitled "History" in the Document,
create one stating the title, year, authors, and publisher of
the Document as given on its Title Page, then add an item
publisher of the Modified Version as given on the Title Page. If
there is no section entitled "History" in the Document, create
one stating the title, year, authors, and publisher of the
Document as given on its Title Page, then add an item
describing the Modified Version as stated in the previous
sentence.
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and
likewise the network locations given in the Document for
previous versions it was based on. These may be placed in the
"History" section. You may omit a network location for a work
that was published at least four years before the Document
itself, or if the original publisher of the version it refers
to gives permission.
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
K. In any section entitled "Acknowledgements" or "Dedications",
preserve the section's title, and preserve in the section all the
substance and tone of each of the contributor acknowledgements
@ -10241,67 +10237,67 @@ Index

Tag Table:
Node: Top820
Node: Overview1152
Node: History2203
Node: How It Works3149
Node: What BFD Version 2 Can Do4691
Node: BFD information loss6006
Node: Canonical format8538
Node: BFD front end12910
Node: Memory Usage38524
Node: Initialization39752
Node: Sections40211
Node: Section Input40694
Node: Section Output42059
Node: typedef asection44545
Node: section prototypes69502
Node: Symbols79182
Node: Reading Symbols80777
Node: Writing Symbols81884
Node: Mini Symbols83593
Node: typedef asymbol84567
Node: symbol handling functions89485
Node: Archives94827
Node: Formats98553
Node: Relocations101501
Node: typedef arelent102228
Node: howto manager118039
Node: Core Files180319
Node: Targets182136
Node: bfd_target184106
Node: Architectures204186
Node: Opening and Closing225618
Node: Internal236620
Node: File Caching242953
Node: Linker Functions244867
Node: Creating a Linker Hash Table246540
Node: Adding Symbols to the Hash Table248278
Node: Differing file formats249178
Node: Adding symbols from an object file250926
Node: Adding symbols from an archive253077
Node: Performing the Final Link255491
Node: Information provided by the linker256733
Node: Relocating the section contents257887
Node: Writing the symbol table259638
Node: Hash Tables262631
Node: Creating and Freeing a Hash Table263829
Node: Looking Up or Entering a String265079
Node: Traversing a Hash Table266332
Node: Deriving a New Hash Table Type267121
Node: Define the Derived Structures268187
Node: Write the Derived Creation Routine269268
Node: Write Other Derived Routines271892
Node: BFD back ends273207
Node: What to Put Where273477
Node: aout273615
Node: coff279933
Node: elf304410
Node: mmo305273
Node: File layout306201
Node: Symbol-table311848
Node: mmo section mapping315617
Node: GNU Free Documentation License319269
Node: Index338994
Node: Top818
Node: Overview1150
Node: History2201
Node: How It Works3147
Node: What BFD Version 2 Can Do4689
Node: BFD information loss6004
Node: Canonical format8536
Node: BFD front end12908
Node: Memory Usage38522
Node: Initialization39750
Node: Sections40209
Node: Section Input40692
Node: Section Output42057
Node: typedef asection44543
Node: section prototypes69500
Node: Symbols79180
Node: Reading Symbols80775
Node: Writing Symbols81882
Node: Mini Symbols83591
Node: typedef asymbol84565
Node: symbol handling functions89483
Node: Archives94825
Node: Formats98551
Node: Relocations101499
Node: typedef arelent102226
Node: howto manager118037
Node: Core Files180317
Node: Targets182134
Node: bfd_target184104
Node: Architectures204184
Node: Opening and Closing225616
Node: Internal236618
Node: File Caching242951
Node: Linker Functions244865
Node: Creating a Linker Hash Table246538
Node: Adding Symbols to the Hash Table248276
Node: Differing file formats249176
Node: Adding symbols from an object file250924
Node: Adding symbols from an archive253075
Node: Performing the Final Link255489
Node: Information provided by the linker256731
Node: Relocating the section contents257885
Node: Writing the symbol table259636
Node: Hash Tables262629
Node: Creating and Freeing a Hash Table263827
Node: Looking Up or Entering a String265077
Node: Traversing a Hash Table266330
Node: Deriving a New Hash Table Type267119
Node: Define the Derived Structures268185
Node: Write the Derived Creation Routine269266
Node: Write Other Derived Routines271890
Node: BFD back ends273205
Node: What to Put Where273475
Node: aout273613
Node: coff279931
Node: elf304408
Node: mmo305271
Node: File layout306199
Node: Symbol-table311846
Node: mmo section mapping315615
Node: GNU Free Documentation License319267
Node: Index338980

End Tag Table

View File

@ -1,7 +1,4 @@
This is
/home/bonefish/develop/haiku/buildtools/legacy/binutils/binutils/doc/binutils.info,
produced by makeinfo version 4.9 from
/home/bonefish/develop/haiku/buildtools/legacy/binutils/binutils/doc/binutils.texi.
This is /home/zooey/Sources/haiku/buildtools.pm/legacy/binutils/binutils/doc/binutils.info, produced by makeinfo version 4.13 from /home/zooey/Sources/haiku/buildtools.pm/legacy/binutils/binutils/doc/binutils.texi.
START-INFO-DIR-ENTRY
* Binutils: (binutils). The GNU binary utilities.
@ -507,7 +504,7 @@ object files are listed as arguments, `nm' assumes the file `a.out'.
same name. If the symbol is defined anywhere, the common
symbols are treated as undefined references. For more
details on common symbols, see the discussion of -warn-common
in *Note Linker options: (ld.info)Options.
in *note Linker options: (ld.info)Options.
`D'
The symbol is in the initialized data section.
@ -561,7 +558,7 @@ object files are listed as arguments, `nm' assumes the file `a.out'.
this case, the next values printed are the stabs other field,
the stabs desc field, and the stab type. Stabs symbols are
used to hold debugging information. For more information,
see *Note Stabs: (stabs.info)Top.
see *note Stabs: (stabs.info)Top.
`?'
The symbol type is unknown, or object file format specific.
@ -1575,7 +1572,7 @@ equivalent. At least one option from the list
ELF section. In most other file formats, debugging symbol-table
entries are interleaved with linkage symbols, and are visible in
the `--syms' output. For more information on stabs symbols, see
*Note Stabs: (stabs.info)Top.
*note Stabs: (stabs.info)Top.
`--start-address=ADDRESS'
Start displaying data at the specified address. This affects the
@ -2244,7 +2241,7 @@ file language used in header files, see the `linkers' section,
`NLMLINK' in particular, of the `NLM Development and Tools Overview',
which is part of the NLM Software Developer's Kit ("NLM SDK"),
available from Novell, Inc. `nlmconv' uses the GNU Binary File
Descriptor library to read INFILE; see *Note BFD: (ld.info)BFD, for
Descriptor library to read INFILE; see *note BFD: (ld.info)BFD, for
more information.
`nlmconv' can perform a link step. In other words, you can list
@ -2379,7 +2376,7 @@ available to Windows.
This is a BFD target name; you can use the `--help' option to see
a list of supported targets. Normally `windres' will use the
default format, which is the first one listed by the `--help'
option. *Note Target Selection::.
option. *note Target Selection::.
`--preprocessor PROGRAM'
When `windres' reads an `rc' file, it runs it through the C
@ -3473,20 +3470,19 @@ Appendix A GNU Free Documentation License
H. Include an unaltered copy of this License.
I. Preserve the section entitled "History", and its title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page.
If there is no section entitled "History" in the Document,
create one stating the title, year, authors, and publisher of
the Document as given on its Title Page, then add an item
publisher of the Modified Version as given on the Title Page. If
there is no section entitled "History" in the Document, create
one stating the title, year, authors, and publisher of the
Document as given on its Title Page, then add an item
describing the Modified Version as stated in the previous
sentence.
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and
likewise the network locations given in the Document for
previous versions it was based on. These may be placed in the
"History" section. You may omit a network location for a work
that was published at least four years before the Document
itself, or if the original publisher of the version it refers
to gives permission.
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
K. In any section entitled "Acknowledgements" or "Dedications",
preserve the section's title, and preserve in the section all the
substance and tone of each of the contributor acknowledgements
@ -3805,33 +3801,33 @@ Index

Tag Table:
Node: Top1847
Node: ar3400
Node: ar cmdline5578
Node: ar scripts13721
Node: nm19409
Node: objcopy27605
Node: objdump50657
Node: ranlib65570
Node: size66325
Node: strings69172
Node: strip71522
Node: c++filt77001
Ref: c++filt-Footnote-181929
Node: addr2line82035
Node: nlmconv85306
Node: windres87912
Node: dlltool93645
Node: def file format104483
Node: readelf106221
Node: Common Options110929
Node: Selecting The Target System111969
Node: Target Selection112901
Node: Architecture Selection114883
Node: Reporting Bugs115711
Node: Bug Criteria116490
Node: Bug Reporting117043
Node: GNU Free Documentation License124137
Node: Index143869
Node: Top1848
Node: ar3401
Node: ar cmdline5579
Node: ar scripts13722
Node: nm19410
Node: objcopy27606
Node: objdump50658
Node: ranlib65571
Node: size66326
Node: strings69173
Node: strip71523
Node: c++filt77002
Ref: c++filt-Footnote-181930
Node: addr2line82036
Node: nlmconv85307
Node: windres87913
Node: dlltool93646
Node: def file format104484
Node: readelf106222
Node: Common Options110930
Node: Selecting The Target System111970
Node: Target Selection112902
Node: Architecture Selection114884
Node: Reporting Bugs115712
Node: Bug Criteria116491
Node: Bug Reporting117044
Node: GNU Free Documentation License124138
Node: Index143858

End Tag Table

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,4 @@
This is
/home/bonefish/develop/haiku/buildtools/legacy/binutils/ld/ld.info,
produced by makeinfo version 4.9 from
/home/bonefish/develop/haiku/buildtools/legacy/binutils/ld/ld.texinfo.
This is /home/zooey/Sources/haiku/buildtools.pm/legacy/binutils/ld/ld.info, produced by makeinfo version 4.13 from /home/zooey/Sources/haiku/buildtools.pm/legacy/binutils/ld/ld.texinfo.
START-INFO-DIR-ENTRY
* Ld: (ld). The GNU linker.
@ -216,14 +213,14 @@ GNU linker:
The default format is taken from the environment variable
`GNUTARGET'. *Note Environment::. You can also define the input
format from a script, using the command `TARGET'; see *Note Format
format from a script, using the command `TARGET'; see *note Format
Commands::.
`-c MRI-COMMANDFILE'
`--mri-script=MRI-COMMANDFILE'
For compatibility with linkers produced by MRI, `ld' accepts script
files written in an alternate, restricted command language,
described in *Note MRI Compatible Script Files: MRI. Introduce
described in *note MRI Compatible Script Files: MRI. Introduce
MRI script files with the option `-c'; use the `-T' option to run
linker scripts written in the general-purpose `ld' scripting
language. If MRI-CMDFILE does not exist, `ld' looks for it in the
@ -276,7 +273,7 @@ GNU linker:
You can also use the version script to control what symbols should
be added to the dynamic symbol table if the output format supports
it. See the description of `--version-script' in *Note VERSION::.
it. See the description of `--version-script' in *note VERSION::.
`-EB'
Link big-endian objects. This affects the default output format.
@ -461,7 +458,7 @@ GNU linker:
[0x0000000c] foo = (foo * 0x4)
[0x0000000c] foo = (foo + 0x8)
See *Note Expressions:: for more information about
See *note Expressions:: for more information about
expressions in linker scripts.
`-n'
@ -712,10 +709,10 @@ GNU linker:
Tells the linker to accept input files whose architecture cannot be
recognised. The assumption is that the user knows what they are
doing and deliberately wants to link in these unknown input files.
This was the default behaviour of the linker, before release
2.14. The default behaviour from release 2.14 onwards is to
reject such input files, and so the `--accept-unknown-input-arch'
option has been added to restore the old behaviour.
This was the default behaviour of the linker, before release 2.14.
The default behaviour from release 2.14 onwards is to reject such
input files, and so the `--accept-unknown-input-arch' option has
been added to restore the old behaviour.
`--as-needed'
`--no-as-needed'
@ -2049,7 +2046,7 @@ Several linker script commands deal with files.
the "sysroot prefix". Otherwise, the linker will try to open the
file in the current directory. If it is not found, the linker
will search through the archive library search path. See the
description of `-L' in *Note Command Line Options: Options.
description of `-L' in *note Command Line Options: Options.
If you use `INPUT (-lFILE)', `ld' will transform the name to
`libFILE.a', as with the command line argument `-l'.
@ -2063,7 +2060,7 @@ Several linker script commands deal with files.
The `GROUP' command is like `INPUT', except that the named files
should all be archives, and they are searched repeatedly until no
new undefined references are created. See the description of `-('
in *Note Command Line Options: Options.
in *note Command Line Options: Options.
`AS_NEEDED(FILE, FILE, ...)'
`AS_NEEDED(FILE FILE ...)'
@ -2237,14 +2234,14 @@ only use this within a `SECTIONS' command. *Note Location Counter::.
The semicolon after EXPRESSION is required.
Expressions are defined below; see *Note Expressions::.
Expressions are defined below; see *note Expressions::.
You may write symbol assignments as commands in their own right, or
as statements within a `SECTIONS' command, or as part of an output
section description in a `SECTIONS' command.
The section of the symbol will be set from the section of the
expression; for more information, see *Note Expression Section::.
expression; for more information, see *note Expression Section::.
Here is an example showing the three different places that symbol
assignments may be used:
@ -2501,7 +2498,7 @@ the name should be supplied as a quoted numeric string. A section name
may consist of any sequence of characters, but a name which contains
any unusual characters such as commas must be quoted.
The output section name `/DISCARD/' is special; *Note Output Section
The output section name `/DISCARD/' is special; *note Output Section
Discarding::.

@ -2532,7 +2529,7 @@ output section to the current value of the location counter. The
second will set it to the current value of the location counter aligned
to the strictest alignment of a `.text' input section.
The ADDRESS may be an arbitrary expression; *Note Expressions::.
The ADDRESS may be an arbitrary expression; *note Expressions::.
For example, if you want to align the section on a 0x10 byte boundary,
so that the lowest four bits of the section address are zero, you could
do something like this:
@ -2979,9 +2976,8 @@ like this:
OUTPUT-SECTION-COMMAND
...
} [>REGION] [AT>LMA_REGION] [:PHDR :PHDR ...] [=FILLEXP]
We've already described SECTION, ADDRESS, and
OUTPUT-SECTION-COMMAND. In this section we will describe the remaining
section attributes.
We've already described SECTION, ADDRESS, and OUTPUT-SECTION-COMMAND.
In this section we will describe the remaining section attributes.
* Menu:
@ -3033,7 +3029,7 @@ File: ld.info, Node: Output Section LMA, Next: Forced Output Alignment, Prev:
..........................
Every section has a virtual address (VMA) and a load address (LMA); see
*Note Basic Script Concepts::. The address expression which may appear
*note Basic Script Concepts::. The address expression which may appear
in an output section description sets the VMA (*note Output Section
Address::).
@ -3231,11 +3227,11 @@ section.
.text0 { o1/*.o(.text) }
.text1 { o2/*.o(.text) }
}
This will define both `.text0' and `.text1' to start at address
0x1000. `.text0' will be loaded at address 0x4000, and `.text1' will
be loaded immediately after `.text0'. The following symbols will be
defined: `__load_start_text0', `__load_stop_text0',
`__load_start_text1', `__load_stop_text1'.
This will define both `.text0' and `.text1' to start at address 0x1000.
`.text0' will be loaded at address 0x4000, and `.text1' will be loaded
immediately after `.text0'. The following symbols will be defined:
`__load_start_text0', `__load_stop_text0', `__load_start_text1',
`__load_stop_text1'.
C code to copy overlay `.text1' into the overlay area might look
like the following.
@ -3274,8 +3270,8 @@ regions that become too full. The linker will not shuffle sections
around to fit into the available regions.
A linker script may contain at most one use of the `MEMORY' command.
However, you can define as many blocks of memory within it as you
wish. The syntax is:
However, you can define as many blocks of memory within it as you wish.
The syntax is:
MEMORY
{
NAME [(ATTR)] : ORIGIN = ORIGIN, LENGTH = LEN
@ -3290,7 +3286,7 @@ have a distinct name.
The ATTR string is an optional list of attributes that specify
whether to use a particular memory region for an input section which is
not explicitly mapped in the linker script. As described in *Note
not explicitly mapped in the linker script. As described in *note
SECTIONS::, if you do not specify an output section for some input
section, the linker will create an output section with the same name as
the input section. If you define region attributes, the linker will use
@ -4022,11 +4018,10 @@ use in linker script expressions.
variable = ALIGN(0x8000);
}
... }
The first use of `ALIGN' in this example specifies the
location of a section because it is used as the optional ADDRESS
attribute of a section definition (*note Output Section
Address::). The second use of `ALIGN' is used to defines the
value of a symbol.
The first use of `ALIGN' in this example specifies the location of
a section because it is used as the optional ADDRESS attribute of
a section definition (*note Output Section Address::). The second
use of `ALIGN' is used to defines the value of a symbol.
The builtin function `NEXT' is closely related to `ALIGN'.
@ -4595,7 +4590,7 @@ File: ld.info, Node: WIN32, Next: Xtensa, Prev: TI COFF, Up: Machine Depende
==================================
This section describes some of the win32 specific `ld' issues. See
*Note Command Line Options: Options. for detailed decription of the
*note Command Line Options: Options. for detailed decription of the
command line options mentioned here.
_import libraries_
@ -5306,13 +5301,12 @@ leave it out, state it!
Often people omit facts because they think they know what causes the
problem and assume that some details do not matter. Thus, you might
assume that the name of a symbol you use in an example does not matter.
Well, probably it does not, but one cannot be sure. Perhaps the bug
is a stray memory reference which happens to fetch from the location
where that name is stored in memory; perhaps, if the name were
different, the contents of that location would fool the linker into
doing the right thing despite the bug. Play it safe and give a
specific, complete example. That is the easiest thing for you to do,
and the most helpful.
Well, probably it does not, but one cannot be sure. Perhaps the bug is
a stray memory reference which happens to fetch from the location where
that name is stored in memory; perhaps, if the name were different, the
contents of that location would fool the linker into doing the right
thing despite the bug. Play it safe and give a specific, complete
example. That is the easiest thing for you to do, and the most helpful.
Keep in mind that the purpose of a bug report is to enable us to fix
the bug if it is new to us. Therefore, always write your bug reports
@ -5444,7 +5438,7 @@ Appendix A MRI Compatible Script Files
To aid users making the transition to GNU `ld' from the MRI linker,
`ld' can use MRI compatible linker scripts as an alternative to the
more general-purpose linker scripting language described in *Note
more general-purpose linker scripting language described in *note
Scripts::. MRI compatible linker scripts have a much simpler command
set than the scripting language otherwise used with `ld'. GNU `ld'
supports the most commonly used MRI linker commands; these commands are
@ -5746,20 +5740,19 @@ Appendix B GNU Free Documentation License
H. Include an unaltered copy of this License.
I. Preserve the section entitled "History", and its title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page.
If there is no section entitled "History" in the Document,
create one stating the title, year, authors, and publisher of
the Document as given on its Title Page, then add an item
publisher of the Modified Version as given on the Title Page. If
there is no section entitled "History" in the Document, create
one stating the title, year, authors, and publisher of the
Document as given on its Title Page, then add an item
describing the Modified Version as stated in the previous
sentence.
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and
likewise the network locations given in the Document for
previous versions it was based on. These may be placed in the
"History" section. You may omit a network location for a work
that was published at least four years before the Document
itself, or if the original publisher of the version it refers
to gives permission.
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
K. In any section entitled "Acknowledgements" or "Dedications",
preserve the section's title, and preserve in the section all the
substance and tone of each of the contributor acknowledgements
@ -6209,7 +6202,7 @@ Index
* BFD requirements: BFD. (line 16)
* big-endian objects: Options. (line 198)
* binary input format: Options. (line 115)
* BLOCK(EXP): Builtin Functions. (line 62)
* BLOCK(EXP): Builtin Functions. (line 61)
* bug criteria: Bug Criteria. (line 6)
* bug reports: Bug Reporting. (line 6)
* bugs in ld: Reporting Bugs. (line 6)
@ -6245,14 +6238,14 @@ Index
* data: Output Section Data.
(line 6)
* DATA_SEGMENT_ALIGN(MAXPAGESIZE, COMMONPAGESIZE): Builtin Functions.
(line 67)
* DATA_SEGMENT_END(EXP): Builtin Functions. (line 88)
* DATA_SEGMENT_RELRO_END(OFFSET, EXP): Builtin Functions. (line 94)
(line 66)
* DATA_SEGMENT_END(EXP): Builtin Functions. (line 87)
* DATA_SEGMENT_RELRO_END(OFFSET, EXP): Builtin Functions. (line 93)
* dbx: Options. (line 1074)
* DEF files, creating: Options. (line 1470)
* default emulation: Environment. (line 21)
* default input format: Environment. (line 9)
* DEFINED(SYMBOL): Builtin Functions. (line 105)
* DEFINED(SYMBOL): Builtin Functions. (line 104)
* deleting local symbols: Options. (line 513)
* demangling, default: Environment. (line 29)
* demangling, from command line: Options. (line 752)
@ -6317,7 +6310,7 @@ Index
* grouping input files: File Commands. (line 44)
* groups of archives: Options. (line 609)
* H8/300 support: H8/300. (line 6)
* header size: Builtin Functions. (line 170)
* header size: Builtin Functions. (line 169)
* heap size: Options. (line 1412)
* help: Options. (line 792)
* holes: Location Counter. (line 12)
@ -6366,7 +6359,7 @@ Index
* LDEMULATION: Environment. (line 21)
* len =: MEMORY. (line 72)
* LENGTH =: MEMORY. (line 72)
* LENGTH(MEMORY): Builtin Functions. (line 122)
* LENGTH(MEMORY): Builtin Functions. (line 121)
* library search path in linker script: File Commands. (line 71)
* link map: Options. (line 347)
* link-time runtime library search path: Options. (line 967)
@ -6383,7 +6376,7 @@ Index
* little-endian objects: Options. (line 201)
* LOAD (MRI): MRI. (line 84)
* load address: Output Section LMA. (line 6)
* LOADADDR(SECTION): Builtin Functions. (line 125)
* LOADADDR(SECTION): Builtin Functions. (line 124)
* loading, preventing: Output Section Type.
(line 22)
* local symbols, deleting: Options. (line 517)
@ -6395,14 +6388,14 @@ Index
(line 46)
* machine dependencies: Machine Dependent. (line 6)
* mapping input sections to output sections: Input Section. (line 6)
* MAX: Builtin Functions. (line 130)
* MAX: Builtin Functions. (line 129)
* MEMORY: MEMORY. (line 6)
* memory region attributes: MEMORY. (line 32)
* memory regions: MEMORY. (line 6)
* memory regions and sections: Output Section Region.
(line 6)
* memory usage: Options. (line 804)
* MIN: Builtin Functions. (line 133)
* MIN: Builtin Functions. (line 132)
* MRI compatibility: MRI. (line 6)
* MSP430 extra sections: MSP430. (line 11)
* NAME (MRI): MRI. (line 90)
@ -6410,13 +6403,13 @@ Index
(line 6)
* names: Symbols. (line 6)
* naming the output file: Options. (line 404)
* NEXT(EXP): Builtin Functions. (line 137)
* NEXT(EXP): Builtin Functions. (line 136)
* NMAGIC: Options. (line 384)
* NOCROSSREFS(SECTIONS): Miscellaneous Commands.
(line 30)
* NOLOAD: Output Section Type.
(line 22)
* not enough room for program headers: Builtin Functions. (line 175)
* not enough room for program headers: Builtin Functions. (line 174)
* o =: MEMORY. (line 67)
* objdump -i: BFD. (line 6)
* object file management: BFD. (line 6)
@ -6430,7 +6423,7 @@ Index
* ORDER (MRI): MRI. (line 95)
* org =: MEMORY. (line 67)
* ORIGIN =: MEMORY. (line 67)
* ORIGIN(MEMORY): Builtin Functions. (line 143)
* ORIGIN(MEMORY): Builtin Functions. (line 142)
* orphan: Orphan Sections. (line 6)
* output file after errors: Options. (line 870)
* output file format in linker script: Format Commands. (line 10)
@ -6473,7 +6466,7 @@ Index
* program headers: PHDRS. (line 6)
* program headers and sections: Output Section Phdr.
(line 6)
* program headers, not enough room: Builtin Functions. (line 175)
* program headers, not enough room: Builtin Functions. (line 174)
* program segments: PHDRS. (line 6)
* PROVIDE: PROVIDE. (line 6)
* PROVIDE_HIDDEN: PROVIDE_HIDDEN. (line 6)
@ -6521,12 +6514,12 @@ Index
* section fill pattern: Output Section Fill.
(line 6)
* section load address: Output Section LMA. (line 6)
* section load address in expression: Builtin Functions. (line 125)
* section load address in expression: Builtin Functions. (line 124)
* section name: Output Section Name.
(line 6)
* section name wildcard patterns: Input Section Wildcards.
(line 6)
* section size: Builtin Functions. (line 154)
* section size: Builtin Functions. (line 153)
* section, assigning to memory region: Output Section Region.
(line 6)
* section, assigning to program header: Output Section Phdr.
@ -6535,13 +6528,13 @@ Index
* sections, discarding: Output Section Discarding.
(line 6)
* segment origins, cmd line: Options. (line 1090)
* SEGMENT_START(SEGMENT, DEFAULT): Builtin Functions. (line 146)
* SEGMENT_START(SEGMENT, DEFAULT): Builtin Functions. (line 145)
* segments, ELF: PHDRS. (line 6)
* shared libraries: Options. (line 1022)
* SHORT(EXPRESSION): Output Section Data.
(line 6)
* SIZEOF(SECTION): Builtin Functions. (line 154)
* SIZEOF_HEADERS: Builtin Functions. (line 170)
* SIZEOF(SECTION): Builtin Functions. (line 153)
* SIZEOF_HEADERS: Builtin Functions. (line 169)
* small common symbols: Input Section Common.
(line 20)
* SORT: Input Section Wildcards.
@ -6562,7 +6555,7 @@ Index
* SUBALIGN(SUBSECTION_ALIGN): Forced Input Alignment.
(line 6)
* suffixes for integers: Constants. (line 12)
* symbol defaults: Builtin Functions. (line 105)
* symbol defaults: Builtin Functions. (line 104)
* symbol definition, scripts: Assignments. (line 6)
* symbol names: Symbols. (line 6)
* symbol tracing: Options. (line 522)
@ -6579,7 +6572,7 @@ Index
* thumb entry point: ARM. (line 17)
* TI COFF versions: TI COFF. (line 6)
* traditional format: Options. (line 1069)
* unallocated address, next: Builtin Functions. (line 137)
* unallocated address, next: Builtin Functions. (line 136)
* undefined symbol: Options. (line 480)
* undefined symbol in linker script: Miscellaneous Commands.
(line 13)
@ -6613,10 +6606,10 @@ Index

Tag Table:
Node: Top449
Node: Overview1211
Node: Invocation2325
Node: Options2733
Node: Top450
Node: Overview1212
Node: Invocation2326
Node: Options2734
Node: Environment77388
Node: Scripts79148
Node: Basic Script Concepts80882
@ -6646,48 +6639,48 @@ Node: Output Section Data120371
Node: Output Section Keywords123148
Node: Output Section Discarding126717
Node: Output Section Attributes127673
Node: Output Section Type128677
Node: Output Section LMA129831
Node: Forced Output Alignment132102
Node: Forced Input Alignment132370
Node: Output Section Region132755
Node: Output Section Phdr133185
Node: Output Section Fill133849
Node: Overlay Description134991
Node: MEMORY139239
Node: PHDRS143439
Node: VERSION148478
Node: Expressions156269
Node: Constants157147
Node: Symbols157708
Node: Orphan Sections158446
Node: Location Counter159209
Node: Operators163513
Node: Evaluation164435
Node: Expression Section165799
Node: Builtin Functions167288
Node: Implicit Linker Scripts174780
Node: Machine Dependent175555
Node: H8/300176416
Node: i960178041
Node: ARM179726
Node: HPPA ELF32182642
Node: MMIX184265
Node: MSP430185482
Node: PowerPC ELF32186530
Node: PowerPC64 ELF64188821
Node: TI COFF193235
Node: WIN32193767
Node: Xtensa211841
Node: BFD214963
Node: BFD outline216418
Node: BFD information loss217704
Node: Canonical format220221
Node: Reporting Bugs224578
Node: Bug Criteria225272
Node: Bug Reporting225971
Node: MRI232996
Node: GNU Free Documentation License237639
Node: Index257353
Node: Output Section Type128676
Node: Output Section LMA129830
Node: Forced Output Alignment132101
Node: Forced Input Alignment132369
Node: Output Section Region132754
Node: Output Section Phdr133184
Node: Output Section Fill133848
Node: Overlay Description134990
Node: MEMORY139237
Node: PHDRS143436
Node: VERSION148475
Node: Expressions156266
Node: Constants157144
Node: Symbols157705
Node: Orphan Sections158443
Node: Location Counter159206
Node: Operators163510
Node: Evaluation164432
Node: Expression Section165796
Node: Builtin Functions167285
Node: Implicit Linker Scripts174772
Node: Machine Dependent175547
Node: H8/300176408
Node: i960178033
Node: ARM179718
Node: HPPA ELF32182634
Node: MMIX184257
Node: MSP430185474
Node: PowerPC ELF32186522
Node: PowerPC64 ELF64188813
Node: TI COFF193227
Node: WIN32193759
Node: Xtensa211833
Node: BFD214955
Node: BFD outline216410
Node: BFD information loss217696
Node: Canonical format220213
Node: Reporting Bugs224570
Node: Bug Criteria225264
Node: Bug Reporting225963
Node: MRI232988
Node: GNU Free Documentation License237631
Node: Index257333

End Tag Table

View File

@ -1,6 +1,16 @@
#!/bin/bash
if [ -z $GCCDATE ]; then
echo "need to set GCCDATE environment variable!"
exit 1
fi
export BELIBRARIES=/boot/common/lib:/boot/system/develop/lib
mkdir -p binutils-obj
cd binutils-obj
CFLAGS="-O2" CXXFLAGS="-O2" ../binutils/configure --prefix=/boot/develop/tools/gnupro --disable-nls --enable-shared=yes
CFLAGS="-O2" CXXFLAGS="-O2" ../binutils/configure \
--prefix=/boot/common/develop/tools/gcc-2.95.3-${GCCDATE} \
--disable-nls --enable-shared=yes
make
cd ..

View File

@ -1,6 +1,16 @@
#!/bin/bash
if [ -z $GCCDATE ]; then
echo "need to set GCCDATE environment variable!"
exit 1
fi
export BELIBRARIES=/boot/common/lib:/boot/system/develop/lib
mkdir -p gcc-obj
cd gcc-obj
CFLAGS="-O2" CXXFLAGS="-O2" ../gcc/configure --prefix=/boot/develop/tools/gnupro --disable-nls --enable-shared=yes --enable-languages=c,c++
CFLAGS="-O2" CXXFLAGS="-O2" ../gcc/configure \
--prefix=/boot/common/develop/tools/gcc-2.95.3-${GCCDATE} \
--disable-nls --enable-shared=yes --enable-languages=c,c++
make bootstrap
cd ..

View File

@ -169,7 +169,7 @@ OTHERS =
# This is set by the configure script to the list of directories which
# should be built using the target tools.
TARGET_CONFIGDIRS = libiberty libgloss newlib libio librx libstdc++ libg++ winsup opcodes libstub cygmon libf2c libchill libobjc
TARGET_CONFIGDIRS = libiberty libgloss newlib librx libg++ winsup opcodes libstub cygmon libf2c libchill libobjc
# Target libraries are put under this directory:
# Changed by configure to $(target_alias) if cross.
@ -756,8 +756,6 @@ INSTALL_X11_MODULES = \
# This is a list of the targets for all of the modules which are compiled
# using $(TARGET_FLAGS_TO_PASS).
ALL_TARGET_MODULES = \
all-target-libio \
all-target-libstdc++ \
all-target-librx \
all-target-libg++ \
all-target-newlib \
@ -779,8 +777,6 @@ ALL_TARGET_MODULES = \
# This is a list of the configure targets for all of the modules which
# are compiled using the target tools.
CONFIGURE_TARGET_MODULES = \
configure-target-libio \
configure-target-libstdc++ \
configure-target-librx \
configure-target-libg++ \
configure-target-newlib \
@ -802,8 +798,6 @@ CONFIGURE_TARGET_MODULES = \
# This is a list of the check targets for all of the modules which are
# compiled using $(TARGET_FLAGS_TO_PASS).
CHECK_TARGET_MODULES = \
check-target-libio \
check-target-libstdc++ \
check-target-libg++ \
check-target-newlib \
check-target-libf2c \
@ -820,8 +814,6 @@ CHECK_TARGET_MODULES = \
# This is a list of the install targets for all of the modules which are
# compiled using $(TARGET_FLAGS_TO_PASS).
INSTALL_TARGET_MODULES = \
install-target-libio \
install-target-libstdc++ \
install-target-libg++ \
install-target-newlib \
install-target-libf2c \
@ -906,8 +898,6 @@ CLEAN_MODULES = \
# All of the target modules that can be cleaned
CLEAN_TARGET_MODULES = \
clean-target-libio \
clean-target-libstdc++ \
clean-target-librx \
clean-target-libg++ \
clean-target-newlib \
@ -1567,7 +1557,7 @@ all-byacc:
all-bzip2:
all-cvssrc:
configure-target-cygmon: $(ALL_GCC)
all-target-cygmon: configure-target-cygmon all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio all-target-libstub
all-target-cygmon: configure-target-cygmon all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libstub
all-db:
all-dejagnu: all-tcl all-expect all-tk
all-diff: all-libiberty
@ -1592,7 +1582,7 @@ all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison al
all-gettext:
all-gnuserv:
configure-target-gperf: $(ALL_GCC)
all-target-gperf: configure-target-gperf all-target-libiberty all-target-libstdc++
all-target-gperf: configure-target-gperf all-target-libiberty
all-gprof: all-libiberty all-bfd all-opcodes all-intl
all-grep: all-libiberty
all-grez: all-libiberty all-bfd all-opcodes
@ -1607,20 +1597,15 @@ all-ispell: all-emacs19
all-itcl: all-tcl all-tk
all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl
configure-target-libg++: $(ALL_GCC) configure-target-librx
all-target-libg++: configure-target-libg++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio all-target-librx all-target-libstdc++
all-target-libg++: configure-target-libg++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-librx
configure-target-libgloss: $(ALL_GCC)
all-target-libgloss: configure-target-libgloss configure-target-newlib
configure-target-libio: $(ALL_GCC)
all-target-libio: configure-target-libio all-gas all-ld all-gcc all-target-libiberty all-target-newlib
check-target-libio: all-target-libstdc++
all-libgui: all-tcl all-tk all-itcl
all-libiberty:
configure-target-libjava: $(ALL_GCC) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-newlib
all-target-libjava: configure-target-libjava all-gcc all-zip all-target-newlib all-target-zlib all-target-boehm-gc all-target-qthreads
configure-target-librx: $(ALL_GCC) configure-target-newlib
all-target-librx: configure-target-librx
configure-target-libstdc++: $(ALL_GCC)
all-target-libstdc++: configure-target-libstdc++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio
configure-target-libstub: $(ALL_GCC)
all-target-libstub: configure-target-libstub
all-libtool:
@ -1656,7 +1641,7 @@ all-tgas: all-libiberty all-bfd all-opcodes
all-time:
all-tix: all-tcl all-tk
all-wdiff:
all-target-winsup: all-target-newlib all-target-libiberty all-target-libio configure-target-winsup
all-target-winsup: all-target-newlib all-target-libiberty configure-target-winsup
configure-target-winsup: configure-target-newlib
all-uudecode: all-libiberty
all-zip:
@ -1816,7 +1801,7 @@ gas+binutils.tar.gz: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas
SUPPORT_FILES="$(GASB_SUPPORT_DIRS) makeall.bat configure.bat"
.PHONY: libg++.tar.gz
LIBGXX_SUPPORT_DIRS=include libstdc++ libio librx libiberty
LIBGXX_SUPPORT_DIRS=include librx libiberty
libg++.tar.gz: $(DIST_SUPPORT) libg++
$(MAKE) -f Makefile.in taz TOOL=libg++ \
SUPPORT_FILES="$(LIBGXX_SUPPORT_DIRS)"

View File

@ -182,6 +182,12 @@ program_transform_cross_name = s,^,$(target_alias)-,
build_canonical = @build_canonical@
host_canonical = @host_canonical@
HYBRID_SECONDARY = @HYBRID_SECONDARY@
HYBRID_SECONDARY_DEFINES =
ifneq ($(HYBRID_SECONDARY),)
HYBRID_SECONDARY_DEFINES += -DHYBRID_SECONDARY="\"$(HYBRID_SECONDARY)\""
endif
# Tools to use when building a cross-compiler.
# These are used because `configure' appends `cross-make'
# to the makefile when making a cross-compiler.
@ -1412,7 +1418,8 @@ DRIVER_DEFINES = \
-DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-lib/\" \
-DDEFAULT_TARGET_VERSION=\"$(version)\" \
-DDEFAULT_TARGET_MACHINE=\"$(target_alias)\" \
-DTOOLDIR_BASE_PREFIX=\"$(exec_prefix)/\"
-DTOOLDIR_BASE_PREFIX=\"$(exec_prefix)/\" \
$(HYBRID_SECONDARY_DEFINES)
gcc.o: gcc.c $(CONFIG_H) system.h intl.h multilib.h \
Makefile $(lang_specs_files) prefix.h
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
@ -1976,6 +1983,7 @@ cccp.o: cccp.c $(CONFIG_H) intl.h pcp.h version.c config.status system.h \
-DLOCAL_INCLUDE_DIR=\"$(includedir)\" \
-DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \
-DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
$(HYBRID_SECONDARY_DEFINES) \
-c `echo $(srcdir)/cccp.c | sed 's,^\./,,'`
LIBCPP_OBJS = cpplib.o cpphash.o cppalloc.o cpperror.o cppexp.o cppfiles.o \
@ -2010,6 +2018,7 @@ cppinit.o: cppinit.c $(CONFIG_H) cpplib.h intl.h system.h \
-DLOCAL_INCLUDE_DIR=\"$(includedir)\" \
-DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \
-DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
$(HYBRID_SECONDARY_DEFINES) \
-c `echo $(srcdir)/cppinit.c | sed 's,^\./,,'`
# Note for the stamp targets, we run the program `true' instead of
@ -2034,6 +2043,7 @@ protoize.o: protoize.c $(srcdir)/../include/getopt.h $(CONFIG_H) system.h \
-DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-DLOCAL_INCLUDE_DIR=\"$(includedir)\" \
-DSTD_PROTO_DIR=\"$(libsubdir)\" \
$(HYBRID_SECONDARY_DEFINES) \
$(srcdir)/protoize.c
unprotoize.o: unprotoize.c protoize.c $(srcdir)/../include/getopt.h \
@ -2129,14 +2139,14 @@ stmp-int-hdrs: stmp-fixinc $(USER_H) xlimits.h
stmp-headers:
touch $@
FIXINCSRCDIR=$(srcdir)/fixinc
fixinc.sh: $(FIXINCSRCDIR)/mkfixinc.sh $(FIXINCSRCDIR)/fixincl.c \
$(FIXINCSRCDIR)/procopen.c $(FIXINCSRCDIR)/gnu-regex.c \
$(FIXINCSRCDIR)/server.c $(FIXINCSRCDIR)/gnu-regex.h \
$(FIXINCSRCDIR)/server.h $(FIXINCSRCDIR)/inclhack.def
MAKE="$(MAKE)"; srcdir=`cd $(srcdir)/fixinc; pwd` ; \
export MAKE srcdir ; \
cd ./fixinc; $(SHELL) $${srcdir}/mkfixinc.sh $(host_canonical) $(target)
#FIXINCSRCDIR=$(srcdir)/fixinc
#fixinc.sh: $(FIXINCSRCDIR)/mkfixinc.sh $(FIXINCSRCDIR)/fixincl.c \
# $(FIXINCSRCDIR)/procopen.c $(FIXINCSRCDIR)/gnu-regex.c \
# $(FIXINCSRCDIR)/server.c $(FIXINCSRCDIR)/gnu-regex.h \
# $(FIXINCSRCDIR)/server.h $(FIXINCSRCDIR)/inclhack.def
# MAKE="$(MAKE)"; srcdir=`cd $(srcdir)/fixinc; pwd` ; \
# export MAKE srcdir ; \
# cd ./fixinc; $(SHELL) $${srcdir}/mkfixinc.sh $(host_canonical) $(target)
##stmp-fixinc: $(FIXINCLUDES) gsyslimits.h
## rm -rf include
@ -2159,7 +2169,7 @@ fixinc.sh: $(FIXINCSRCDIR)/mkfixinc.sh $(FIXINCSRCDIR)/fixincl.c \
## fi
# Build fixed copies of system files.
stmp-fixinc: fixinc.sh gsyslimits.h
stmp-fixinc: gsyslimits.h
rm -rf include; mkdir include
TARGET_MACHINE=$(target); srcdir=`cd $(srcdir); pwd`; \
INSTALL_ASSERT_H=$(INSTALL_ASSERT_H); SHELL=$(SHELL) ;\

View File

@ -351,98 +351,190 @@ extern union tree_node *i386_pe_merge_decl_attributes ();
#undef SMALL_STACK
/* For native compiler, use standard Haiku include file search paths
rooted in /boot/develop/headers. For a cross compiler, don't
expect the host to use the Haiku directory scheme, and instead look
for the Haiku include files relative to TOOL_INCLUDE_DIR. Yes, we
use ANSI string concatenation here (FIXME) */
rooted in /boot/system/develop/headers. For a cross compiler, don't expect
the host to use the Haiku directory scheme, and instead look for the Haiku
include files relative to TOOL_INCLUDE_DIR. When building as the compiler
for the secondary architecture of a hybrid, use slightly different paths. */
#undef INCLUDE_DEFAULTS
#ifndef CROSS_COMPILE
#undef INCLUDE_DEFAULTS
#ifndef HYBRID_SECONDARY
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\
{ GCC_INCLUDE_DIR, "GCC", 0, 0 },\
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \
{ "/boot/common/include", 0, 0, 0 },\
{ "/boot/develop/headers/os", 0, 0, 0 },\
{ "/boot/develop/headers/os/app", 0, 0, 0 },\
{ "/boot/develop/headers/os/device", 0, 0, 0 },\
{ "/boot/develop/headers/os/drivers", 0, 0, 0 },\
{ "/boot/develop/headers/os/game", 0, 0, 0 },\
{ "/boot/develop/headers/os/interface", 0, 0, 0 },\
{ "/boot/develop/headers/os/kernel", 0, 0, 0 },\
{ "/boot/develop/headers/os/locale", 0, 0, 0 },\
{ "/boot/develop/headers/os/mail", 0, 0, 0 },\
{ "/boot/develop/headers/os/media", 0, 0, 0 },\
{ "/boot/develop/headers/os/midi", 0, 0, 0 },\
{ "/boot/develop/headers/os/midi2", 0, 0, 0 },\
{ "/boot/develop/headers/os/net", 0, 0, 0 },\
{ "/boot/develop/headers/os/opengl", 0, 0, 0 },\
{ "/boot/develop/headers/os/storage", 0, 0, 0 },\
{ "/boot/develop/headers/os/support", 0, 0, 0 },\
{ "/boot/develop/headers/os/translation", 0, 0, 0 },\
{ "/boot/develop/headers/os/add-ons/graphics", 0, 0, 0 },\
{ "/boot/develop/headers/os/add-ons/input_server", 0, 0, 0 },\
{ "/boot/develop/headers/os/add-ons/screen_saver", 0, 0, 0 },\
{ "/boot/develop/headers/os/add-ons/tracker", 0, 0, 0 },\
{ "/boot/develop/headers/os/be_apps/Deskbar", 0, 0, 0 },\
{ "/boot/develop/headers/os/be_apps/NetPositive", 0, 0, 0 },\
{ "/boot/develop/headers/os/be_apps/Tracker", 0, 0, 0 },\
{ "/boot/develop/headers/cpp", 0, 1, 1 },\
{ "/boot/develop/headers/3rdparty", 0, 0, 0 },\
{ "/boot/develop/headers/bsd", 0, 0, 0 },\
{ "/boot/develop/headers/glibc", 0, 0, 0 },\
{ "/boot/develop/headers/gnu", 0, 0, 0 },\
{ "/boot/develop/headers/posix", 0, 0, 0 },\
{ "/boot/develop/headers", 0, 0, 0 }, \
{ "/boot/common/non-packaged/develop/headers", 0, 0, 0 },\
{ "/boot/common/develop/headers", 0, 0, 0 },\
{ "/boot/system/develop/headers/os", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/app", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/device", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/drivers", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/game", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/interface", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/kernel", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/locale", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/mail", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/media", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/midi", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/midi2", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/net", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/opengl", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/storage", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/support", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/translation", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/add-ons/graphics", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/add-ons/input_server", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/add-ons/screen_saver", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/add-ons/tracker", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/be_apps/Deskbar", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/be_apps/NetPositive", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/be_apps/Tracker", 0, 0, 1 },\
{ "/boot/system/develop/headers/3rdparty", 0, 0, 0 },\
/* TODO: To be removed when libtiff has been outsourced. */\
{ "/boot/system/develop/headers/bsd", 0, 0, 1 },\
{ "/boot/system/develop/headers/glibc", 0, 0, 1 },\
{ "/boot/system/develop/headers/gnu", 0, 0, 1 },\
{ "/boot/system/develop/headers/posix", 0, 0, 1 },\
{ "/boot/system/develop/headers", 0, 0, 0 }, \
{ 0, 0, 0, 0 } \
};
#else /* HYBRID_SECONDARY */
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\
{ GCC_INCLUDE_DIR, "GCC", 0, 0 },\
{ "/boot/common/non-packaged/develop/headers/" HYBRID_SECONDARY, 0, 0, 0 },\
{ "/boot/common/develop/headers/" HYBRID_SECONDARY, 0, 0, 0 },\
{ "/boot/system/develop/headers/os", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/app", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/device", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/drivers", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/game", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/interface", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/kernel", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/locale", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/mail", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/media", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/midi", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/midi2", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/net", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/opengl", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/storage", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/support", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/translation", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/add-ons/graphics", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/add-ons/input_server", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/add-ons/screen_saver", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/add-ons/tracker", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/be_apps/Deskbar", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/be_apps/NetPositive", 0, 0, 1 },\
{ "/boot/system/develop/headers/os/be_apps/Tracker", 0, 0, 1 },\
{ "/boot/system/develop/headers/3rdparty", 0, 0, 0 },\
/* TODO: To be removed when libtiff has been outsourced. */\
{ "/boot/system/develop/headers/bsd", 0, 0, 1 },\
{ "/boot/system/develop/headers/glibc", 0, 0, 1 },\
{ "/boot/system/develop/headers/gnu", 0, 0, 1 },\
{ "/boot/system/develop/headers/posix", 0, 0, 1 },\
{ "/boot/system/develop/headers/" HYBRID_SECONDARY, 0, 0, 0 }, \
{ "/boot/system/develop/headers", 0, 0, 0 }, \
{ 0, 0, 0, 0 } \
};
#endif
#else /* CROSS_COMPILE */
#undef INCLUDE_DEFAULTS
#ifndef HYBRID_SECONDARY
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\
{ GCC_INCLUDE_DIR, "GCC", 0, 0 },\
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \
{ CROSS_INCLUDE_DIR "/os", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/app", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/device", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/drivers", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/game", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/interface", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/kernel", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/locale", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/mail", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/media", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/midi", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/midi2", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/net", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/support", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/translation", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/input_server", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/screen_saver", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/tracker", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/cpp", 0, 1, 1 },\
{ CROSS_INCLUDE_DIR "/os", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/app", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/device", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/drivers", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/game", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/interface", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/kernel", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/locale", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/mail", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/media", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/midi", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/midi2", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/net", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/storage", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/support", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/translation", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/input_server", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/screen_saver", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/tracker", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/3rdparty", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/bsd", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/glibc", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/gnu", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/posix", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/bsd", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/glibc", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/gnu", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/posix", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR , 0, 0, 0 }, \
{ 0, 0, 0, 0 } \
};
#else /* HYBRID_SECONDARY */
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\
{ GCC_INCLUDE_DIR, "GCC", 0, 0 },\
{ CROSS_INCLUDE_DIR "/os", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/app", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/device", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/drivers", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/game", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/interface", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/kernel", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/locale", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/mail", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/media", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/midi", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/midi2", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/net", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/storage", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/support", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/translation", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/input_server", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/screen_saver", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/add-ons/tracker", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/3rdparty", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/bsd", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/glibc", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/gnu", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/posix", 0, 0, 1 },\
{ CROSS_INCLUDE_DIR "/" HYBRID_SECONDARY, 0, 0, 0 }, \
{ CROSS_INCLUDE_DIR , 0, 0, 0 }, \
{ 0, 0, 0, 0 } \
};
#endif
#endif
/* Whee. LIBRARY_PATH is Haiku's LD_LIBRARY_PATH, which of course will
cause nasty problems if we override it. */
#define LIBRARY_PATH_ENV "BELIBRARIES"
/* With STANDARD_STARTFILE_PREFIX_{1,2} set to "/boot/common/develop/lib/"
and "/boot/system/develop/lib/", MD_STARTFILE_PREFIX adds the last one of the
standard paths. The user specific paths are set via LIBRARY_PATH_ENV. */
#undef MD_STARTFILE_PREFIX
#ifdef HYBRID_SECONDARY
#define MD_STARTFILE_PREFIX \
"/boot/common/non-packaged/develop/lib/" HYBRID_SECONDARY "/"
#else
#define MD_STARTFILE_PREFIX "/boot/common/non-packaged/develop/lib/"
#endif
/* Haiku doesn't have a separate math library. */
#define MATH_LIBRARY ""
@ -466,8 +558,6 @@ extern union tree_node *i386_pe_merge_decl_attributes ();
So we do just that, we replace MULTIPLE_SYMBOL_SPACES with a
test for optimization (see lex.c, line 4882ff and decl2.c, line 2701).
*/
/* [bonefish]:
Review! */
#undef MULTIPLE_SYMBOL_SPACES
@ -482,14 +572,10 @@ extern union tree_node *i386_pe_merge_decl_attributes ();
so the most likely ill effect of disabling this is that a BeOS gdb
debugging an executable with no debug info would not see the gcc2_compiled
label. */
/* [bonefish]:
Review! */
#undef ASM_IDENTIFY_GCC
#define ASM_IDENTIFY_GCC(FILE)
/* required to compile winnt.c */
/* [bonefish]:
Review! */
#define I386_PE_STRIP_ENCODING(SYM_NAME) \
((SYM_NAME) + ((SYM_NAME)[0] == '@' ? 3 : 0))

View File

@ -4,12 +4,18 @@ CROSS_LIBGCC1 =
# There are system headers elsewhere, but these are the ones that
# we are most likely to want to apply any fixes to.
SYSTEM_HEADER_DIR = /boot/develop/headers/posix
SYSTEM_HEADER_DIR = /boot/system/develop/headers/posix
CROSS_SYSTEM_HEADER_DIR := $(CROSS_SYSTEM_HEADER_DIR)/posix
# Use the system assert.h
INSTALL_ASSERT_H =
# Override the test that checks for the existence of a system limits.h header.
# When cross compiling a native compiler for Haiku we don't actually know where
# the system headers the cross compiler uses are. But we know Haiku has a
# limits.h,
LIMITS_H_TEST = true
winnt.o: $(srcdir)/config/i386/winnt.c
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/i386/winnt.c

File diff suppressed because it is too large Load Diff

View File

@ -292,6 +292,14 @@ AC_ARG_WITH(dwarf2,
dwarf2="$with_dwarf2",
dwarf2=no)
# handle --with-hybrid-secondary
AC_ARG_WITH(hybrid_secondary,
[ --with-hybrid_secondary specify the packaging architecture for building a secondary compiler for a Haiku hybrid system.],
[HYBRID_SECONDARY=$withval],
[HYBRID_SECONDARY=]
)
AC_SUBST(HYBRID_SECONDARY)
# Determine the host, build, and target systems
AC_CANONICAL_SYSTEM
@ -513,6 +521,9 @@ changequote([,])dnl
sparc*-*-*)
cpu_type=sparc
;;
x86_64-*)
cpu_type=i386
;;
esac
tm_file=${cpu_type}/${cpu_type}.h
@ -3341,6 +3352,10 @@ changequote([,])dnl
xm_file="${xm_file} xm-svr3"
use_collect2=yes
;;
x86_64-*)
# Not actually supported as a target. But we want to avoid an error when
# building a cross-compiler for this build host.
;;
*)
echo "Configuration $machine not supported" 1>&2
exit 1

View File

@ -1409,8 +1409,20 @@ static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
#ifdef MD_STARTFILE_PREFIX_1
static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
#endif
static const char *standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
#if !defined(__BEOS__) && !defined(__HAIKU__)
#if defined(__HAIKU__)
#ifdef HYBRID_SECONDARY
static const char *standard_startfile_prefix_1 =
"/boot/common/develop/lib/" HYBRID_SECONDARY "/";
static const char *standard_startfile_prefix_2 =
"/boot/system/develop/lib/" HYBRID_SECONDARY "/";
#else
static const char *standard_startfile_prefix_1 = "/boot/common/develop/lib/";
static const char *standard_startfile_prefix_2 = "/boot/system/develop/lib/";
#endif
#else
static const char *standard_startfile_prefix_1 = "/lib/";
static const char *standard_startfile_prefix_2 = "/usr/lib/";
#endif
@ -4943,12 +4955,10 @@ main (argc, argv)
NULL_PTR, 0, 0, NULL_PTR);
}
#if !defined(__BEOS__) && !defined(__HAIKU__)
add_prefix (&startfile_prefixes, standard_startfile_prefix_1,
"BINUTILS", 0, 0, NULL_PTR);
add_prefix (&startfile_prefixes, standard_startfile_prefix_2,
"BINUTILS", 0, 0, NULL_PTR);
#endif
#if 0 /* Can cause surprises, and one can use -B./ instead. */
add_prefix (&startfile_prefixes, "./", NULL_PTR, 0, 1, NULL_PTR);
#endif

View File

@ -1 +1 @@
char *version_string = "2.95.3-haiku-121101";
char *version_string = "2.95.3-haiku-2013_08_15";