refactored gcc pisi files
This commit is contained in:
+26
-80
@@ -9,64 +9,26 @@ from pisi.actionsapi import pisitools
|
||||
from pisi.actionsapi import shelltools
|
||||
from pisi.actionsapi import get
|
||||
|
||||
import os
|
||||
|
||||
snapshot = False
|
||||
shelltools.export('CFLAGS', get.CFLAGS().replace('-pipe', ''))
|
||||
shelltools.export('CXXFLAGS', get.CXXFLAGS().replace('-pipe', ''))
|
||||
|
||||
if snapshot:
|
||||
verMajor, verMinor = get.srcVERSION().replace("pre", "").split("_", 1)
|
||||
WorkDir = "gcc-4.7-%s" % verMinor
|
||||
else:
|
||||
verMajor = get.srcVERSION()
|
||||
|
||||
arch = get.ARCH().replace("x86_64", "x86-64")
|
||||
|
||||
#opt_unwind = "--with-system-libunwind" if get.ARCH() == "x86_64" else "--without-system-libunwind"
|
||||
opt_arch = "--with-arch_32=i686" if get.ARCH() == "x86_64" else "--with-arch=i686"
|
||||
opt_multilib = "--enable-multilib" if get.ARCH() == "x86_64" else ""
|
||||
|
||||
# WARNING: even -fomit-frame-pointer may break the build, stack protector, fortify source etc. are off limits
|
||||
cflags = "-O2 -g"
|
||||
|
||||
|
||||
def removePisiLinuxSection(_dir):
|
||||
for root, dirs, files in os.walk(_dir):
|
||||
for name in files:
|
||||
# FIXME: should we do this only on nonshared or all ?
|
||||
# if ("crt" in name and name.endswith(".o")) or name.endswith("nonshared.a"):
|
||||
if ("crt" in name and name.endswith(".o")) or name.endswith(".a"):
|
||||
i = os.path.join(root, name)
|
||||
shelltools.system('objcopy -R ".comment.PISILINUX.OPTs" -R ".note.gnu.build-id" %s' % i)
|
||||
|
||||
def exportFlags():
|
||||
# we set real flags with new configure settings, these are just safe optimizations
|
||||
shelltools.export("CFLAGS", cflags)
|
||||
shelltools.export("CXXFLAGS", cflags)
|
||||
# shelltools.export("LDFLAGS", "")
|
||||
|
||||
# FIXME: this may not be necessary for biarch
|
||||
shelltools.export("CC", "gcc")
|
||||
shelltools.export("CXX", "g++")
|
||||
shelltools.export("LC_ALL", "en_US.UTF-8")
|
||||
|
||||
def setup():
|
||||
exportFlags()
|
||||
# Maintainer mode off, do not force recreation of generated files
|
||||
#shelltools.system("contrib/gcc_update --touch")
|
||||
pisitools.dosed("gcc/Makefile.in", "\.\/fixinc\.sh", "-c true")
|
||||
pisitools.dosed("gcc/config/i386/t-linux64", "m64=../lib64", "m64=../lib")
|
||||
pisitools.dosed("gcc/configure", "^(ac_cpp='\$CPP\s\$CPPFLAGS)", r"\1 -O2")
|
||||
pisitools.dosed("libiberty/configure", "^(ac_cpp='\$CPP\s\$CPPFLAGS)", r"\1 -O2")
|
||||
|
||||
|
||||
shelltools.move("isl-0.21", "isl")
|
||||
shelltools.move("mpfr-4.0.2", "mpfr")
|
||||
shelltools.move("mpc-1.1.0", "mpc")
|
||||
shelltools.move("gmp-6.1.2", "gmp")
|
||||
|
||||
shelltools.cd("../")
|
||||
shelltools.makedirs("build")
|
||||
shelltools.cd("build")
|
||||
shelltools.makedirs("../build")
|
||||
shelltools.cd("../build")
|
||||
|
||||
shelltools.system('.././gcc-%s/configure \
|
||||
shelltools.system('../gcc-%s/configure \
|
||||
--prefix=/usr \
|
||||
--bindir=/usr/bin \
|
||||
--libdir=/usr/lib \
|
||||
@@ -76,7 +38,6 @@ def setup():
|
||||
--infodir=/usr/share/info \
|
||||
--with-bugurl=http://bugs.pisilinux.org \
|
||||
--enable-languages=c,c++,fortran,lto,objc,obj-c++ \
|
||||
--disable-libgcj \
|
||||
--enable-shared \
|
||||
--enable-threads=posix \
|
||||
--with-system-zlib \
|
||||
@@ -87,61 +48,46 @@ def setup():
|
||||
--disable-libssp \
|
||||
--enable-gnu-unique-object \
|
||||
--enable-linker-build-id \
|
||||
--enable-cloog-backend=isl \
|
||||
--disable-cloog-version-check \
|
||||
--enable-lto \
|
||||
--enable-plugin \
|
||||
--with-linker-hash-style=gnu \
|
||||
--with-pkgversion="Pisi Linux" \
|
||||
--disable-werror \
|
||||
--enable-checking=release \
|
||||
--build=%s \
|
||||
%s \
|
||||
%s ' % ( verMajor , get.HOST(), opt_arch, opt_multilib))
|
||||
--enable-install-libiberty \
|
||||
--enable-gnu-indirect-function \
|
||||
--enable-multilib \
|
||||
--enable-default-pie \
|
||||
--enable-default-ssp \
|
||||
--enable-cet' % get.srcVERSION())
|
||||
|
||||
|
||||
def build():
|
||||
exportFlags()
|
||||
|
||||
shelltools.cd("../build")
|
||||
autotools.make('BOOT_CFLAGS="%s" profiledbootstrap' % cflags)
|
||||
autotools.make("profiledbootstrap")
|
||||
|
||||
|
||||
def check():
|
||||
shelltools.cd("../build")
|
||||
autotools.make("-k check || true")
|
||||
shelltools.system("%s/gcc/contrib/test_summary" % get.srcDIR())
|
||||
|
||||
|
||||
def install():
|
||||
shelltools.cd("../build")
|
||||
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
|
||||
#autotools.install()
|
||||
|
||||
for header in ["limits.h","syslimits.h"]:
|
||||
pisitools.insinto("/usr/lib/gcc/%s/%s/include" % (get.HOST(), verMajor) , "gcc/include-fixed/%s" % header)
|
||||
|
||||
# Not needed
|
||||
pisitools.removeDir("/usr/lib/gcc/*/*/include-fixed")
|
||||
pisitools.removeDir("/usr/lib/gcc/*/*/install-tools")
|
||||
|
||||
# This one comes with binutils
|
||||
#pisitools.remove("/usr/lib*/libiberty.a")
|
||||
|
||||
# cc symlink
|
||||
pisitools.dosym("/usr/bin/gcc" , "/usr/bin/cc")
|
||||
pisitools.dosym("/usr/bin/gcc", "/usr/bin/cc")
|
||||
|
||||
# /lib/cpp symlink for legacy X11 stuff
|
||||
pisitools.dosym("/usr/bin/cpp", "/lib/cpp")
|
||||
|
||||
pisitools.dosym("/usr/bin/x86_64-pc-linux-gnu-gcc-ar", "/usr/bin/x86_64-pc-linux-gnu-ar")
|
||||
|
||||
# Remove our options section from crt stuff
|
||||
removePisiLinuxSection("%s/usr/lib/" % get.installDIR())
|
||||
if get.ARCH() == "x86_64":
|
||||
removePisiLinuxSection("%s/usr/lib32/" % get.installDIR())
|
||||
# TODO: Add liblto_plugin.so link to necessary place.
|
||||
|
||||
|
||||
# autoload gdb pretty printers
|
||||
gdbpy_dir = "/usr/share/gdb/auto-load/usr/lib/"
|
||||
pisitools.dodir(gdbpy_dir)
|
||||
|
||||
gdbpy_files = shelltools.ls("%s/usr/lib/libstdc++*gdb.py*" % get.installDIR())
|
||||
gdbpy_files = shelltools.ls("%s/usr/lib/*gdb.py" % get.installDIR())
|
||||
for i in gdbpy_files:
|
||||
pisitools.domove("/usr/lib/%s" % shelltools.baseName(i), gdbpy_dir)
|
||||
|
||||
if arch == "x86-64":
|
||||
pisitools.remove("/usr/lib32/libstdc++*gdb.py*")
|
||||
|
||||
pisitools.domove("/usr/lib/%s" % shelltools.baseName(i), "/usr/share/gdb/auto-load/usr/lib")
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
fl="-std=c89"
|
||||
for opt; do
|
||||
case "$opt" in
|
||||
-ansi|-std=c89|-std=iso9899:1990) fl="";;
|
||||
-std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
done
|
||||
exec gcc $fl ${1+"$@"}
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
fl="-std=c99"
|
||||
for opt; do
|
||||
case "$opt" in
|
||||
-std=c99|-std=iso9899:1999) fl="";;
|
||||
-std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
done
|
||||
exec gcc $fl ${1+"$@"}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,71 +0,0 @@
|
||||
diff -Naur gcc-4.9-20140604-old/gcc/graphite-clast-to-gimple.c gcc-4.9-20140604/gcc/graphite-clast-to-gimple.c
|
||||
--- gcc-4.9-20140604-old/gcc/graphite-clast-to-gimple.c 2014-03-03 21:39:22.000000000 +1000
|
||||
+++ gcc-4.9-20140604/gcc/graphite-clast-to-gimple.c 2014-06-25 15:07:57.958697105 +1000
|
||||
@@ -28,6 +28,8 @@
|
||||
#include <isl/constraint.h>
|
||||
#include <isl/ilp.h>
|
||||
#include <isl/aff.h>
|
||||
+#include <isl/deprecated/int.h>
|
||||
+#include <isl/deprecated/ilp_int.h>
|
||||
#include <cloog/cloog.h>
|
||||
#include <cloog/isl/domain.h>
|
||||
#endif
|
||||
diff -Naur gcc-4.9-20140604-old/gcc/graphite-interchange.c gcc-4.9-20140604/gcc/graphite-interchange.c
|
||||
--- gcc-4.9-20140604-old/gcc/graphite-interchange.c 2014-01-03 08:23:26.000000000 +1000
|
||||
+++ gcc-4.9-20140604/gcc/graphite-interchange.c 2014-06-25 15:10:06.882899243 +1000
|
||||
@@ -29,6 +29,9 @@
|
||||
#include <isl/map.h>
|
||||
#include <isl/union_map.h>
|
||||
#include <isl/ilp.h>
|
||||
+#include <isl/deprecated/int.h>
|
||||
+#include <isl/deprecated/ilp_int.h>
|
||||
+#include <isl/deprecated/constraint_int.h>
|
||||
#include <cloog/cloog.h>
|
||||
#include <cloog/isl/domain.h>
|
||||
#endif
|
||||
diff -Naur gcc-4.9-20140604-old/gcc/graphite-optimize-isl.c gcc-4.9-20140604/gcc/graphite-optimize-isl.c
|
||||
--- gcc-4.9-20140604-old/gcc/graphite-optimize-isl.c 2014-01-03 08:23:26.000000000 +1000
|
||||
+++ gcc-4.9-20140604/gcc/graphite-optimize-isl.c 2014-06-25 15:16:57.038386166 +1000
|
||||
@@ -28,6 +28,8 @@
|
||||
#include <isl/band.h>
|
||||
#include <isl/aff.h>
|
||||
#include <isl/options.h>
|
||||
+#include <isl/deprecated/int.h>
|
||||
+#include <isl/deprecated/aff_int.h>
|
||||
#endif
|
||||
|
||||
#include "system.h"
|
||||
@@ -373,7 +375,7 @@
|
||||
{
|
||||
for (i = ScheduleDimensions - 1 ; i >= 0 ; i--)
|
||||
{
|
||||
- if (isl_band_member_is_zero_distance (Band, i))
|
||||
+ if (isl_band_member_is_coincident (Band, i))
|
||||
{
|
||||
isl_map *TileMap;
|
||||
isl_union_map *TileUMap;
|
||||
diff -Naur gcc-4.9-20140604-old/gcc/graphite-poly.c gcc-4.9-20140604/gcc/graphite-poly.c
|
||||
--- gcc-4.9-20140604-old/gcc/graphite-poly.c 2014-01-03 08:23:26.000000000 +1000
|
||||
+++ gcc-4.9-20140604/gcc/graphite-poly.c 2014-06-25 15:18:01.207157796 +1000
|
||||
@@ -28,6 +28,8 @@
|
||||
#include <isl/constraint.h>
|
||||
#include <isl/ilp.h>
|
||||
#include <isl/aff.h>
|
||||
+#include <isl/deprecated/int.h>
|
||||
+#include <isl/deprecated/ilp_int.h>
|
||||
#include <cloog/cloog.h>
|
||||
#include <cloog/isl/domain.h>
|
||||
#endif
|
||||
diff -Naur gcc-4.9-20140604-old/gcc/graphite-sese-to-poly.c gcc-4.9-20140604/gcc/graphite-sese-to-poly.c
|
||||
--- gcc-4.9-20140604-old/gcc/graphite-sese-to-poly.c 2014-04-08 20:59:40.000000000 +1000
|
||||
+++ gcc-4.9-20140604/gcc/graphite-sese-to-poly.c 2014-06-25 15:19:46.575140398 +1000
|
||||
@@ -26,6 +26,9 @@
|
||||
#include <isl/union_map.h>
|
||||
#include <isl/constraint.h>
|
||||
#include <isl/aff.h>
|
||||
+#include <isl/deprecated/int.h>
|
||||
+#include <isl/deprecated/aff_int.h>
|
||||
+#include <isl/deprecated/constraint_int.h>
|
||||
#include <cloog/cloog.h>
|
||||
#include <cloog/cloog.h>
|
||||
#include <cloog/isl/domain.h>
|
||||
@@ -1,107 +0,0 @@
|
||||
#!/bin/sh
|
||||
# gfilt: Unix shell script driver for gcc / STL Error Decryptor
|
||||
#
|
||||
# Leor Zolman leor@bdsoft.com
|
||||
# BD Software www.bdsoft.com
|
||||
# Updated: 1/30/2008
|
||||
#
|
||||
# Installation: Place this file and gSTLFilt.pl somewhere in your PATH
|
||||
# (Make sure Perl is also in your PATH)
|
||||
#
|
||||
# Usage: gfilt [mixture of compiler and Decryptor options] file(s)
|
||||
#
|
||||
# Purpose: Serve as a substitute for the g++ compiler driver, in-
|
||||
# corporating STLFilt functionality transparently.
|
||||
# Distinguishes compiler options/args from Decryptor options,
|
||||
# makes sure all recognized Decryptor options are passed on
|
||||
# the Decryptor script command line while other options/
|
||||
# args are passed on the compiler command line.
|
||||
# Filter all compiler output, and send results to stdout.
|
||||
#
|
||||
# (Note: stdout and stderr output streams from the compiler
|
||||
# are combined by this process, so the two can no longer be
|
||||
# individually redirected afterwards. If this is an issue
|
||||
# for anyone, please let me know.)
|
||||
#
|
||||
# Exit status: The status code returned by the compiler
|
||||
#
|
||||
# Contents of the environment variable GFILTOPTS are passed as
|
||||
# options to the STLFILT script (see the setting of DOPTS below.)
|
||||
#
|
||||
# 01/30/08 - Gets gSTLFilt.pl from same dir as this script
|
||||
# Expanded the usage message a bit
|
||||
# 06/29/05 - added more explanatory comments, fixed COPTS handling
|
||||
# 02/16/05 - fixed multi-line case statement to work for freeBSD
|
||||
# 12/17/04 - Added recognition of several script options that
|
||||
# were missing from the case: with, meta, nullarg
|
||||
# Added more comments.
|
||||
# 02/21/03 - Exit status is now status of compilation
|
||||
#
|
||||
# Note: If packaged in a ZIP file, this file uses CR-LF line termination.
|
||||
# If packaged in a .tar file, it'll have Unix-style termination.
|
||||
#########################################################################
|
||||
# Configuration section:
|
||||
|
||||
COMPILER=c++ # Your g++ compiler command
|
||||
STLFILT="`dirname $0`/gSTLFilt.pl" # Assumes gSTLFilt.pl is in same dir as gfilt
|
||||
|
||||
# default options to Decryptor script:
|
||||
DOPTS="/hdr:m /cand:s /iter:L ${GFILTOPTS:-}"
|
||||
PAGER=less # pager of choice, or leave blank for no paging
|
||||
COPTS= # compiler options
|
||||
|
||||
# End of configuration section
|
||||
#########################################################################
|
||||
|
||||
|
||||
if $COMPILER --version | grep " 3\." >/dev/null # if gcc 3.x...
|
||||
then
|
||||
COPTS="-fmessage-length=0 $COPTS" # ...this option is needed.
|
||||
fi
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "gfilt: wrapper for gcc/c++ compiler with STL Error Decryptor"
|
||||
echo "usage: $0 [all-options] [compiler-arguments]"
|
||||
echo " [NOTE: compiler and decryptor options may be mixed]"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
|
||||
GCC_ARGS=
|
||||
DECRYPTOR_ARGS=
|
||||
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
[-/]iter:* | [-/]cand:* | [/-]hdr:* | \
|
||||
[-/]with:* | [-/]path:* | [/-]showback:* | \
|
||||
[/-]width:* | [-/]lognative | [-/]banner:* | [-/]nullarg:* | \
|
||||
[-/]break:* | [-/]cbreak:* | [-/]closewrap:* | [-/]meta | [-/]meta:*)
|
||||
DECRYPTOR_ARGS="$DECRYPTOR_ARGS $arg";;
|
||||
*)
|
||||
GCC_ARGS="$GCC_ARGS $arg";;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
#
|
||||
# Note that there are several options the Perl script accepts.
|
||||
# see the comments at the top of gSTLFilt.pl for details.
|
||||
#
|
||||
|
||||
TMPFILE=/tmp/gfilt$$.tmp
|
||||
touch $TMPFILE
|
||||
trap "rm $TMPFILE; exit 1" 1 2 3 15
|
||||
|
||||
$COMPILER $COPTS $GCC_ARGS >$TMPFILE 2>&1
|
||||
STATUS=$?
|
||||
|
||||
if [ "$PAGER" != "" ]; then
|
||||
perl $STLFILT $DOPTS $DECRYPTOR_ARGS < $TMPFILE | $PAGER
|
||||
else
|
||||
perl $STLFILT $DOPTS $DECRYPTOR_ARGS < $TMPFILE
|
||||
fi
|
||||
|
||||
rm $TMPFILE
|
||||
exit $STATUS
|
||||
@@ -1,21 +0,0 @@
|
||||
diff -Nuar gcc-4.9.0.orig/gcc/config/i386/linux64.h gcc-4.9.0/gcc/config/i386/linux64.h
|
||||
--- gcc-4.9.0.orig/gcc/config/i386/linux64.h 2014-01-03 00:23:26.000000000 +0200
|
||||
+++ gcc-4.9.0/gcc/config/i386/linux64.h 2014-05-15 13:21:11.968021447 +0300
|
||||
@@ -28,5 +28,5 @@
|
||||
#define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
|
||||
-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
|
||||
+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
|
||||
#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
|
||||
diff -Nuar gcc-4.9.0.orig/gcc/config/i386/t-linux64 gcc-4.9.0/gcc/config/i386/t-linux64
|
||||
--- gcc-4.9.0.orig/gcc/config/i386/t-linux64 2014-01-03 00:23:26.000000000 +0200
|
||||
+++ gcc-4.9.0/gcc/config/i386/t-linux64 2014-05-15 13:11:48.198012307 +0300
|
||||
@@ -33,6 +33,6 @@
|
||||
comma=,
|
||||
MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
|
||||
MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
|
||||
-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
|
||||
+MULTILIB_OSDIRNAMES = m64=../lib$(call if_multiarch,:x86_64-linux-gnu)
|
||||
MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
|
||||
MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
|
||||
@@ -1,17 +0,0 @@
|
||||
--- gcc/c-family/c-opts.c (revision 200330)
|
||||
+++ gcc/c-family/c-opts.c (working copy)
|
||||
@@ -1338,10 +1338,14 @@ c_finish_options (void)
|
||||
|
||||
/* Give CPP the next file given by -include, if any. */
|
||||
static void
|
||||
push_command_line_include (void)
|
||||
{
|
||||
+ // This can happen if disabled by -imacros for example.
|
||||
+ if (include_cursor > deferred_count)
|
||||
+ return;
|
||||
+
|
||||
if (!done_preinclude)
|
||||
{
|
||||
done_preinclude = true;
|
||||
if (flag_hosted && std_inc && !cpp_opts->preprocessed)
|
||||
{
|
||||
@@ -1,69 +0,0 @@
|
||||
diff -Nuar gcc-4.7.1.old/gcc/output.h gcc-4.7.1/gcc/output.h
|
||||
--- gcc-4.7.1.old/gcc/output.h 2012-03-22 12:40:31.000000000 +0200
|
||||
+++ gcc-4.7.1/gcc/output.h 2012-07-22 08:03:30.669774211 +0300
|
||||
@@ -661,6 +661,7 @@
|
||||
extern void default_file_start (void);
|
||||
extern void file_end_indicate_exec_stack (void);
|
||||
extern void file_end_indicate_split_stack (void);
|
||||
+extern void pisilinux_file_end_indicate_optflags (void);
|
||||
|
||||
extern void default_elf_asm_output_external (FILE *file, tree,
|
||||
const char *);
|
||||
diff -Nuar gcc-4.7.1.old/gcc/toplev.c gcc-4.7.1/gcc/toplev.c
|
||||
--- gcc-4.7.1.old/gcc/toplev.c 2012-01-05 17:08:42.000000000 +0200
|
||||
+++ gcc-4.7.1/gcc/toplev.c 2012-07-22 08:05:04.729598301 +0300
|
||||
@@ -674,6 +674,8 @@
|
||||
|
||||
/* Invoke registered plugin callbacks. */
|
||||
invoke_plugin_callbacks (PLUGIN_FINISH_UNIT, NULL);
|
||||
+
|
||||
+ pisilinux_file_end_indicate_optflags ();
|
||||
|
||||
/* This must be at the end. Some target ports emit end of file directives
|
||||
into the assembly file here, and hence we can not output anything to the
|
||||
diff -Nuar gcc-4.7.1.old/gcc/varasm.c gcc-4.7.1/gcc/varasm.c
|
||||
--- gcc-4.7.1.old/gcc/varasm.c 2012-04-24 09:10:53.000000000 +0300
|
||||
+++ gcc-4.7.1/gcc/varasm.c 2012-07-22 08:01:31.878259309 +0300
|
||||
@@ -7165,14 +7165,34 @@
|
||||
switch_to_section (get_section (".note.GNU-stack", flags, NULL));
|
||||
}
|
||||
|
||||
-/* Emit a special section directive to indicate that this object file
|
||||
- was compiled with -fsplit-stack. This is used to let the linker
|
||||
- detect calls between split-stack code and non-split-stack code, so
|
||||
- that it can modify the split-stack code to allocate a sufficiently
|
||||
- large stack. We emit another special section if there are any
|
||||
- functions in this file which have the no_split_stack attribute, to
|
||||
- prevent the linker from warning about being unable to convert the
|
||||
- functions if they call non-split-stack code. */
|
||||
+/* This is a generic routine emitting a PisiLinux specific section for
|
||||
+ QA check marks. */
|
||||
+
|
||||
+void
|
||||
+pisilinux_file_end_indicate_optflags (void)
|
||||
+{
|
||||
+ unsigned int flags = SECTION_DEBUG | SECTION_STRINGS | SECTION_MERGE | (SECTION_ENTSIZE & 1);
|
||||
+
|
||||
+ /*
|
||||
+ o/O: optimize was off/on
|
||||
+ s/S: size optimisation was off/on
|
||||
+ p/P: stack-protector was off/on
|
||||
+ w/W: warnings were off/on
|
||||
+ g/G: debug was off/on
|
||||
+ */
|
||||
+
|
||||
+ char opts_buffer[6];
|
||||
+
|
||||
+ opts_buffer[0] = (optimize >= 2) ? 'O' : 'o';
|
||||
+ opts_buffer[1] = (optimize >= 1 && optimize_size) ? 'S' : 's';
|
||||
+ opts_buffer[2] = (flag_stack_protect >= 1) ? 'P' : 'p';
|
||||
+ opts_buffer[3] = (warn_uninitialized >= 1 && warn_sequence_point >= 1) ? 'W' : 'w';
|
||||
+ opts_buffer[4] = (debug_info_level > DINFO_LEVEL_NONE) ? 'G' : 'g';
|
||||
+ opts_buffer[5] = '\0';
|
||||
+
|
||||
+ switch_to_section (get_section (".comment.PISILINUX.OPTs", flags, NULL));
|
||||
+ ASM_OUTPUT_ASCII (asm_out_file, opts_buffer, strlen (opts_buffer) + 1);
|
||||
+}
|
||||
|
||||
void
|
||||
file_end_indicate_split_stack (void)
|
||||
@@ -34,12 +34,6 @@
|
||||
<Dependency>zlib-devel</Dependency>
|
||||
<Dependency>elfutils</Dependency>
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<!-- Pisilinux Patches -->
|
||||
<!-- Fix paths in 64bit -->
|
||||
<Patch level="1">pisilinux/64.patch</Patch>
|
||||
<Patch level="1">pisilinux/gcc_47_based-record_gcc_options.patch</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
@@ -137,8 +131,8 @@
|
||||
<Path fileType="info">/usr/share/info</Path>
|
||||
</Files>
|
||||
<AdditionalFiles>
|
||||
<AdditionalFile owner="root" permission="0755" target="/usr/bin/gfilt">gfilt</AdditionalFile>
|
||||
<AdditionalFile owner="root" permission="0644" target="/usr/libexec/gSTLFilt.pl">gSTLFilt.pl</AdditionalFile>
|
||||
<AdditionalFile owner="root" permission="0755" target="/usr/bin/c89">c89</AdditionalFile>
|
||||
<AdditionalFile owner="root" permission="0755" target="/usr/bin/c99">c99</AdditionalFile>
|
||||
</AdditionalFiles>
|
||||
</Package>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user