diff options
-rw-r--r-- | PATCHES | 3 | ||||
-rw-r--r-- | pom.xml | 2 | ||||
-rw-r--r-- | src/net/sf/antcontrib/cpptasks/gcc/GppLinker.java | 11 |
3 files changed, 14 insertions, 2 deletions
@@ -1,4 +1,7 @@ *** Changes marked with FREEHEP. +cpptasks-20051015-patched-1.2-SNAPSHOT +- added -shared-libgcc/-static-libgcc for linking gcc and c++. + cpptasks-20051015-patched-1.1 - [CCTask] added method to link with CPP - [compiler.LinkType] added method to link with CPP @@ -3,7 +3,7 @@ <groupId>net.sf.antcontrib</groupId> <artifactId>cpptasks</artifactId> <name>CPPTasks (modified)</name> - <version>20051015-patched-1.1</version> + <version>20051015-patched-1.2-SNAPSHOT</version> <description> Library to call native compilers and linkers. </description> diff --git a/src/net/sf/antcontrib/cpptasks/gcc/GppLinker.java b/src/net/sf/antcontrib/cpptasks/gcc/GppLinker.java index c8d1da0..ed18581 100644 --- a/src/net/sf/antcontrib/cpptasks/gcc/GppLinker.java +++ b/src/net/sf/antcontrib/cpptasks/gcc/GppLinker.java @@ -41,7 +41,9 @@ public class GppLinker extends AbstractLdLinker { ".lib", ".dll", ".so", ".sl"}; private static String[] linkerOptions = new String[]{"-bundle", "-dylib", "-dynamic", "-dynamiclib", "-nostartfiles", "-nostdlib", - "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker"}; + "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker", +// FREEHEP + "-static-libgcc", "-shared-libgcc"}; private static final GppLinker instance = new GppLinker("gcc", objFiles, discardFiles, "", "", false, null); private static final GppLinker machDllLinker = new GppLinker("gcc", @@ -56,6 +58,7 @@ public class GppLinker extends AbstractLdLinker { } private File[] libDirs; private String runtimeLibrary; + private String gccLibrary; protected GppLinker(String command, String[] extensions, String[] ignoredExtensions, String outputPrefix, String outputSuffix, boolean isLibtool, GppLinker libtoolLinker) { @@ -74,6 +77,7 @@ public class GppLinker extends AbstractLdLinker { } // FREEHEP, avoid stdc++ if requested runtimeLibrary = null; + gccLibrary = null; if (linkType.linkCPP()) { if (linkType.isStaticRuntime()) { String[] cmdin = new String[]{"g++", "-print-file-name=libstdc++.a"}; @@ -83,8 +87,10 @@ public class GppLinker extends AbstractLdLinker { } else { runtimeLibrary = null; } + gccLibrary = "-static-libgcc"; } else { runtimeLibrary = "-lstdc++"; + gccLibrary = "-shared-libgcc"; } } // FREEHEP: set flag @@ -97,6 +103,9 @@ public class GppLinker extends AbstractLdLinker { if (runtimeLibrary != null) { endargs.addElement(runtimeLibrary); } + if (gccLibrary != null) { + endargs.addElement(gccLibrary); + } return rs; } /** |