ports/57574: [patch] lang/ifc: fix undefined reference to `__sigsetjmp'

Masakazu HIGAKI higamasa at dream.com
Sat Oct 4 13:00:39 UTC 2003


>Number:         57574
>Category:       ports
>Synopsis:       [patch] lang/ifc: fix undefined reference to `__sigsetjmp'
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Oct 04 06:00:34 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Masakazu HIGAKI <higamasa at dream.com>
>Release:        FreeBSD 5.1-RELEASE i386
>Organization:
>Environment:
System: FreeBSD hig_muramasa 5.1-RELEASE FreeBSD 5.1-RELEASE #0: Thu Sep 25 23:47:29 JST 2003 higaki at hig_muramasa:/sys/i386/compile/MURAMASA i386

>Description:
	IFC fails to link when invoked with -ax or -x option
	because a static library of ifc has an unresolved symbol, __sigsetjmp.
	The following is an example of error messages:

	test.f90(1) : (col. 0) remark: main has been targeted for automatic cpu dispatch.
	/usr/local/intel/compiler70/ia32/lib/libirc.a(cpu_disp.o): In function `has_osfxsr_set':
	cpu_disp.o(.text+0xea): undefined reference to `__sigsetjmp'


>How-To-Repeat:
	ifc -axK foobar.f90

>Fix:
Please consider applying the patch:

--- ifc/Makefile.orig	Sat Oct  4 07:49:46 2003
+++ ifc/Makefile	Sat Oct  4 21:14:22 2003
@@ -122,7 +122,8 @@
 .for i in libcxa.a libimf.a libirc.a libircmt.a libunwind.a \
 	libBINDF90.a libCEPCF90.a libF90.a libIEPCF90.a libPEPCF90.a \
 	libcprts.a libintrins.a libompstub.a
-	@${OBJCOPY} --redefine-sym stdin=__stdinp \
+	@${OBJCOPY} --redefine-sym __sigsetjmp=sigsetjmp \
+		--redefine-sym stdin=__stdinp \
 		--redefine-sym stdout=__stdoutp \
 		--redefine-sym stderr=__stderrp \
 		${WRKSRC}/opt/intel/${COMPILERDIR}/ia32/lib/${i}
--- ifc/files/ld.c.orig	Tue Apr 29 07:17:47 2003
+++ ifc/files/ld.c	Sat Aug 23 12:00:35 2003
@@ -206,6 +206,10 @@
 			dynamic++;
 			continue;
 		}
+		if (ARGCMP("-shared")) {
+			dynamic++;
+			continue;
+		}
 
 		/*
 		 * Just link libstlport_icc* once when compiling the stlport
@@ -334,7 +338,11 @@
 
 		/* Switch Linux stuff to FreeBSD counterparts. */
 		if (ARGCMP("/lib/ld-linux.so.2")) {
+#if __FreeBSD_version >= 501105
+			addarg(&al, "/libexec/ld-elf.so.1", 1);
+#else
 			addarg(&al, "/usr/libexec/ld-elf.so.1", 1);
+#endif
 			continue;
 		}
 		if (ARGCMP("-L/usr/lib")) {
--- ifc/files/linux_file.c.orig	Tue Apr 29 07:17:47 2003
+++ ifc/files/linux_file.c	Sat Aug 23 13:26:03 2003
@@ -30,9 +30,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
-static short unsigned int ctype_b[256] = { 0 };
-short unsigned int *__ctype_b = ctype_b;
-
 /* This matches struct stat64 in glibc2.1, hence the absolutely
  * insane amounts of padding around dev_t's.
  */
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list