[32219] trunk/dports/lang/g95
ryandesign at macports.org
ryandesign at macports.org
Thu Dec 20 07:10:37 PST 2007
Revision: 32219
http://trac.macosforge.org/projects/macports/changeset/32219
Author: ryandesign at macports.org
Date: 2007-12-20 07:10:34 -0800 (Thu, 20 Dec 2007)
Log Message:
-----------
g95: maintainer update to fix build on Leopard; closes #13190
Modified Paths:
--------------
trunk/dports/lang/g95/Portfile
Added Paths:
-----------
trunk/dports/lang/g95/files/patch-darwin-fallback.c.diff
trunk/dports/lang/g95/files/patch-host-darwin.c.diff
Modified: trunk/dports/lang/g95/Portfile
===================================================================
--- trunk/dports/lang/g95/Portfile 2007-12-20 14:49:38 UTC (rev 32218)
+++ trunk/dports/lang/g95/Portfile 2007-12-20 15:10:34 UTC (rev 32219)
@@ -3,7 +3,7 @@
PortSystem 1.0
name g95
version 0.90
-revision 1
+revision 2
platforms darwin
categories lang
maintainers takeshi at mac.com
@@ -34,15 +34,22 @@
pre-configure {
file mkdir ${workpath}/gcc-${version_gcc}/${name}
- reinplace "s|/usr/bin/libtool|${prefix}/bin/odlibtool|" ${workpath}/gcc-${version_gcc}/gcc/config/darwin.h
- system "unset CPPFLAGS; unset LDFLAGS; \
- cd ${workpath}/gcc-${version_gcc}/${name}; \
- ../configure --prefix=${prefix}/${gcclib} --enable-languages=c --with-as=${prefix}/bin/odas --with-ld=${prefix}/bin/odld --with-nm=${prefix}/bin/odnm --with-included-gettext; \
- make"
+ if {[variant_isset darwin_9]} {
+ reinplace "s|i686|i386|" ${workpath}/gcc-${version_gcc}/gcc/config/i386/darwin.h
+ reinplace "s|tjmp %%edx|tjmp *%%edx|" ${workpath}/gcc-${version_gcc}/gcc/config/i386/i386.c
+ set gcc_configargs "--with-as=/usr/bin/as --with-ld=/usr/bin/ld --with-nm=/usr/bin/nm"
+ } else {
+ reinplace "s|/usr/bin/libtool|${prefix}/bin/odlibtool|" ${workpath}/gcc-${version_gcc}/gcc/config/darwin.h
+ set gcc_configargs "--with-as=${prefix}/bin/odas --with-ld=${prefix}/bin/odld --with-nm=${prefix}/bin/odnm"
+ }
+ system "unset CPPFLAGS; unset LDFLAGS; \
+ cd ${workpath}/gcc-${version_gcc}/${name}; \
+ ../configure --prefix=${prefix}/${gcclib} \
+ --enable-languages=c ${gcc_configargs} --with-included-gettext \
+ --with-gmp=${prefix} --with-mpfr=${prefix}; \
+ make"
}
-configure.cppflags ""
-configure.ldflags ""
configure.args --with-gcc-dir=${workpath}/gcc-${version_gcc}
post-build {
@@ -72,3 +79,8 @@
system "ln -sf ${prefix}/${gcclib}/libgcc_s.1.0.dylib ${destroot}${prefix}/${gcclib}/lib/libgcc_s.1.0.dylib"
system "ln -sf ${prefix}/${gcclib}/libgcc_s.1.0.dylib ${destroot}${prefix}/${gcclib}/lib/libgcc_s.dylib"
}
+
+platform darwin 9 {
+ patchfiles-append patch-host-darwin.c.diff patch-darwin-fallback.c.diff
+ depends_lib-delete port:odcctools
+}
Added: trunk/dports/lang/g95/files/patch-darwin-fallback.c.diff
===================================================================
--- trunk/dports/lang/g95/files/patch-darwin-fallback.c.diff (rev 0)
+++ trunk/dports/lang/g95/files/patch-darwin-fallback.c.diff 2007-12-20 15:10:34 UTC (rev 32219)
@@ -0,0 +1,82 @@
+--- ../gcc-4.0.3/gcc/config/rs6000/darwin-fallback.c.orig 2007-11-11 10:46:12.000000000 +0900
++++ ../gcc-4.0.3/gcc/config/rs6000/darwin-fallback.c 2007-11-11 11:25:18.000000000 +0900
+@@ -261,9 +261,9 @@
+ };
+
+ #define UC_FLAVOR_SIZE \
+- (sizeof (struct mcontext) - sizeof (ppc_vector_state_t))
++ (sizeof (struct __darwin_mcontext) - sizeof (ppc_vector_state_t))
+
+-#define UC_FLAVOR_VEC_SIZE (sizeof (struct mcontext))
++#define UC_FLAVOR_VEC_SIZE (sizeof (struct __darwin_mcontext))
+
+ #define UC_FLAVOR64_SIZE \
+ (sizeof (struct gcc_mcontext64) - sizeof (ppc_vector_state_t))
+@@ -354,33 +354,33 @@
+ }
+ else
+ {
+- struct mcontext *m = uctx->uc_mcontext;
++ struct __darwin_mcontext *m = (struct __darwin_mcontext *)uctx->uc_mcontext;
+ int i;
+
+- float_state = &m->fs;
+- vector_state = &m->vs;
++ float_state = &m->__fs;
++ vector_state = &m->__vs;
+
+- new_cfa = m->ss.r1;
++ new_cfa = m->__ss.__r1;
+
+- set_offset (CR2_REGNO, &m->ss.cr);
++ set_offset (CR2_REGNO, &m->__ss.__cr);
+ for (i = 0; i < 32; i++)
+- set_offset (i, &m->ss.r0 + i);
+- set_offset (XER_REGNO, &m->ss.xer);
+- set_offset (LINK_REGISTER_REGNUM, &m->ss.lr);
+- set_offset (COUNT_REGISTER_REGNUM, &m->ss.ctr);
++ set_offset (i, &m->__ss.__r0 + i);
++ set_offset (XER_REGNO, &m->__ss.__xer);
++ set_offset (LINK_REGISTER_REGNUM, &m->__ss.__lr);
++ set_offset (COUNT_REGISTER_REGNUM, &m->__ss.__ctr);
+
+ if (is_vector)
+- set_offset (VRSAVE_REGNO, &m->ss.vrsave);
++ set_offset (VRSAVE_REGNO, &m->__ss.__vrsave);
+
+ /* Sometimes, srr0 points to the instruction that caused the exception,
+ and sometimes to the next instruction to be executed; we want
+ the latter. */
+- if (m->es.exception == 3 || m->es.exception == 4
+- || m->es.exception == 6
+- || (m->es.exception == 7 && !(m->ss.srr1 & 0x10000)))
+- return_addr = m->ss.srr0 + 4;
++ if (m->__es.__exception == 3 || m->__es.__exception == 4
++ || m->__es.__exception == 6
++ || (m->__es.__exception == 7 && !(m->__ss.__srr1 & 0x10000)))
++ return_addr = m->__ss.__srr0 + 4;
+ else
+- return_addr = m->ss.srr0;
++ return_addr = m->__ss.__srr0;
+ }
+
+ fs->cfa_how = CFA_REG_OFFSET;
+@@ -399,14 +399,14 @@
+ set_offset (ARG_POINTER_REGNUM, &return_addr);
+
+ for (i = 0; i < 32; i++)
+- set_offset (32 + i, float_state->fpregs + i);
+- set_offset (SPEFSCR_REGNO, &float_state->fpscr);
++ set_offset (32 + i, float_state->__fpregs + i);
++ set_offset (SPEFSCR_REGNO, &float_state->__fpscr);
+
+ if (is_vector)
+ {
+ for (i = 0; i < 32; i++)
+- set_offset (FIRST_ALTIVEC_REGNO + i, vector_state->save_vr + i);
+- set_offset (VSCR_REGNO, vector_state->save_vscr);
++ set_offset (FIRST_ALTIVEC_REGNO + i, vector_state->__save_vr + i);
++ set_offset (VSCR_REGNO, vector_state->__save_vscr);
+ }
+
+ return true;
Added: trunk/dports/lang/g95/files/patch-host-darwin.c.diff
===================================================================
--- trunk/dports/lang/g95/files/patch-host-darwin.c.diff (rev 0)
+++ trunk/dports/lang/g95/files/patch-host-darwin.c.diff 2007-12-20 15:10:34 UTC (rev 32219)
@@ -0,0 +1,31 @@
+--- ../gcc-4.0.3/gcc/config/rs6000/host-darwin.c.orig 2007-11-10 13:24:23.000000000 +0900
++++ ../gcc-4.0.3/gcc/config/rs6000/host-darwin.c 2007-11-10 13:19:23.000000000 +0900
+@@ -33,10 +33,6 @@
+ static void segv_handler (int, siginfo_t *, void *);
+ static void darwin_rs6000_extra_signals (void);
+
+-/* This doesn't have a prototype in signal.h in 10.2.x and earlier,
+- fixed in later releases. */
+-extern int sigaltstack(const struct sigaltstack *, struct sigaltstack *);
+-
+ #undef HOST_HOOKS_EXTRA_SIGNALS
+ #define HOST_HOOKS_EXTRA_SIGNALS darwin_rs6000_extra_signals
+
+@@ -60,7 +60,7 @@
+ which case the next line will segfault _again_. Handle this case. */
+ signal (SIGSEGV, segv_crash_handler);
+
+- faulting_insn = *(unsigned *)uc->uc_mcontext->ss.srr0;
++ faulting_insn = *(unsigned *)uc->uc_mcontext->__ss.__srr0;
+
+ /* Note that this only has to work for GCC, so we don't have to deal
+ with all the possible cases (GCC has no AltiVec code, for
+@@ -109,7 +109,7 @@
+ }
+
+ fprintf (stderr, "[address=%08lx pc=%08x]\n",
+- uc->uc_mcontext->es.dar, uc->uc_mcontext->ss.srr0);
++ uc->uc_mcontext->__es.__dar, uc->uc_mcontext->__ss.__srr0);
+ internal_error ("Segmentation Fault");
+ exit (FATAL_EXIT_CODE);
+ }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20071220/6b858feb/attachment-0001.html
More information about the macports-changes
mailing list