[PATCH] GUB: fix cross/gcc for darwin-x86

View: New views
4 Messages — Rating Filter:   Alert me  

[PATCH] GUB: fix cross/gcc for darwin-x86

by Patrick McCarty-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

With luck, I finally managed to compile darwin-x86::cross/gcc with the
attached patch.  See the commit summary for an explanation.

I could never find the source of the error, even after extensive shell
tracing.  :(

The original report is here:

  http://lists.gnu.org/archive/html/lilypond-devel/2009-09/msg00417.html

Thanks,
Patrick

From 15c38a977baeebdf3a5510820d08600c7ad4e988 Mon Sep 17 00:00:00 2001
From: Patrick McCarty <pnorcks@...>
Date: Thu, 29 Oct 2009 02:06:28 -0700
Subject: [PATCH] darwin-x86::cross/gcc - Do not process fixed includes

I cannot track down the reason why fixinc.sh is breaking compilation for
me.  However, if fixinc.sh is not run, compilation succeeds.

The patch is based on the Arch Linux packaging script, which uses sed to
do the same work:

  http://repos.archlinux.org/wsvn/packages/gcc/repos/core-x86_64/PKGBUILD
---
 gub/specs/darwin/cross/gcc.py             |    3 +++
 patches/gcc-4.3.2-no-fixed-includes.patch |   12 ++++++++++++
 2 files changed, 15 insertions(+), 0 deletions(-)
 create mode 100644 patches/gcc-4.3.2-no-fixed-includes.patch

diff --git a/gub/specs/darwin/cross/gcc.py b/gub/specs/darwin/cross/gcc.py
index f933d22..e1fd203 100644
--- a/gub/specs/darwin/cross/gcc.py
+++ b/gub/specs/darwin/cross/gcc.py
@@ -2,6 +2,7 @@ import os
 #
 from gub.specs.cross import gcc as cross_gcc
 from gub import loggedos
+from gub import cross
 
 class Gcc__darwin (cross_gcc.Gcc):
     source = 'ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-4.1.1/gcc-4.1.1.tar.bz2'
@@ -15,6 +16,7 @@ class Gcc__darwin (cross_gcc.Gcc):
 
         self.file_sub ([('--strip-underscores', '--strip-underscore')],
                        '%(srcdir)s/libstdc++-v3/scripts/make_exports.pl')
+        cross.AutoBuild.patch (self)
     def languages (self):
         # objective-c is used for quartz's Carbon/Carbon.h in pango, gtk+
         return cross_gcc.Gcc.languages (self) + ['objc', 'obj-c++']
@@ -51,6 +53,7 @@ class Gcc__darwin (cross_gcc.Gcc):
     
 class Gcc__darwin__x86 (Gcc__darwin):
     source = 'ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-4.3.2/gcc-4.3.2.tar.bz2'
+    patches = ['gcc-4.3.2-no-fixed-includes.patch']
     dependencies = Gcc__darwin.dependencies + ['tools::mpfr']
 
 class Not_used__Gcc__darwin (Gcc__darwin):
diff --git a/patches/gcc-4.3.2-no-fixed-includes.patch b/patches/gcc-4.3.2-no-fixed-includes.patch
new file mode 100644
index 0000000..f0dd5b3
--- /dev/null
+++ b/patches/gcc-4.3.2-no-fixed-includes.patch
@@ -0,0 +1,12 @@
+diff -ru gcc-4.3.2/gcc/Makefile.in gcc-4.3.2-patched/gcc/Makefile.in
+--- gcc-4.3.2/gcc/Makefile.in 2008-08-01 02:51:03.000000000 -0700
++++ gcc-4.3.2-patched/gcc/Makefile.in 2009-10-28 21:54:33.292837334 -0700
+@@ -3508,7 +3508,7 @@
+      SHELL='$(SHELL)'; MACRO_LIST=`${PWD_COMMAND}`/macro_list ; \
+      export TARGET_MACHINE srcdir SHELL MACRO_LIST && \
+      cd $(build_objdir)/fixincludes && \
+-      $(SHELL) ./fixinc.sh ../../gcc/$${fix_dir} \
++      $(SHELL) -c true ../../gcc/$${fix_dir} \
+        $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \
+    rm -f $${fix_dir}/syslimits.h; \
+    if [ -f $${fix_dir}/limits.h ]; then \
--
1.6.5.2


_______________________________________________
lilypond-devel mailing list
lilypond-devel@...
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Re: [PATCH] GUB: fix cross/gcc for darwin-x86

by Jan Nieuwenhuizen-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Op donderdag 29-10-2009 om 02:21 uur [tijdzone -0700], schreef Patrick
McCarty:
> Hi,
>
> With luck, I finally managed to compile darwin-x86::cross/gcc with the
> attached patch.  See the commit summary for an explanation.
>
> I could never find the source of the error, even after extensive shell
> tracing.  :(

Is this with a LIBRESTRICT=open:stat build, or with a build that
still has traces of that (ie, bash or sed installed in
target/tools/root; libtool built with that bash, etc?)

I ask because one source of problems with open:stat restriction
is mismatches in $SHELL/$(SHELL) usage/ detection by configure,
or in Makefiles.

+-            $(SHELL) ./fixinc.sh ../../gcc/$${fix_dir} \
++            $(SHELL) -c true ../../gcc/$${fix_dir} \

I'm not sure what fixinc.sh does, exactly, but this is effectively
undoing that -- possibly that's a bit crude?

Greetings,
Jan.

--
Jan Nieuwenhuizen <janneke@...> | GNU LilyPond - The music typesetter
AvatarĀ®: http://AvatarAcademy.nl    | http://lilypond.org



_______________________________________________
lilypond-devel mailing list
lilypond-devel@...
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Re: [PATCH] GUB: fix cross/gcc for darwin-x86

by Patrick McCarty-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 2009-11-02, Jan Nieuwenhuizen wrote:

> Op donderdag 29-10-2009 om 02:21 uur [tijdzone -0700], schreef Patrick
> McCarty:
> > Hi,
> >
> > With luck, I finally managed to compile darwin-x86::cross/gcc with the
> > attached patch.  See the commit summary for an explanation.
> >
> > I could never find the source of the error, even after extensive shell
> > tracing.  :(
>
> Is this with a LIBRESTRICT=open:stat build, or with a build that
> still has traces of that (ie, bash or sed installed in
> target/tools/root; libtool built with that bash, etc?)

It is with LIBRESTRICT=open, but I can reproduce it with open:stat
too...

> I ask because one source of problems with open:stat restriction
> is mismatches in $SHELL/$(SHELL) usage/ detection by configure,
> or in Makefiles.
>
> +-            $(SHELL) ./fixinc.sh ../../gcc/$${fix_dir} \
> ++            $(SHELL) -c true ../../gcc/$${fix_dir} \
>
> I'm not sure what fixinc.sh does, exactly, but this is effectively
> undoing that -- possibly that's a bit crude?

Yes, it's crude.  I wasn't expecting you to apply this patch; I just
wanted to report that it fixes the compile for me, so this might shed
some light on the problem.

I've tried doing `sh -x ./fixinc.sh', but that didn't reveal any
clues.

I suppose I'll try doing a `sh -x ./fixinc.sh' with
freebsd-x86::cross/gcc, which uses gcc 4.3.2 too (and is succeeding).
Comparing the logs might provide some hints.

Are there any other ways to debug this issue besides shell tracing?


Thanks,
Patrick


_______________________________________________
lilypond-devel mailing list
lilypond-devel@...
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Re: [PATCH] GUB: fix cross/gcc for darwin-x86

by Jan Nieuwenhuizen-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Op maandag 02-11-2009 om 13:29 uur [tijdzone -0800], schreef Patrick
McCarty:

> I've tried doing `sh -x ./fixinc.sh', but that didn't reveal any
> clues.
>
> I suppose I'll try doing a `sh -x ./fixinc.sh' with
> freebsd-x86::cross/gcc, which uses gcc 4.3.2 too (and is succeeding).
> Comparing the logs might provide some hints.

That's something like what I would do.  You can also try doing
bash -x and compare the log with sh -x.  And beware of LIBRESTRICT
errors of course, those can have nasty effects -- esp. in "languages"
like sh or perl that just continue upon an error.

> Are there any other ways to debug this issue besides shell tracing?

Is fixinc.sh being generated?

Greetings,
Jan.




_______________________________________________
lilypond-devel mailing list
lilypond-devel@...
http://lists.gnu.org/mailman/listinfo/lilypond-devel