ports/73914: /usr/ports/lang/scm marked broken unjustifiedly due to Segmentation Fault

dai inukai inukai.d at jeans.ocn.ne.jp
Sat Nov 13 22:30:21 UTC 2004


>Number:         73914
>Category:       ports
>Synopsis:       /usr/ports/lang/scm marked broken unjustifiedly due to Segmentation Fault
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Nov 13 22:30:20 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     dai inukai
>Release:        FreeBSD 6.0-CURRENT i386, FreeBSD 5.3-RELEASE i386
>Organization:
>Environment:
FreeBSD daip 6.0-CURRENT FreeBSD 6.0-CURRENT #0: Sat Nov 13 17:33:44 JST 2004 daip at daip:/usr/obj/usr/src/sys/DAIKERNEL i386, FreeBSD daip 5.3-RELEASE FreeBSD 5.3-RELEASE #0: Tue Nov  9 15:50:00 JST 2004 daip at daip:/usr/obj/usr/src/sys/DAIKERNEL  i386, 1 CPU Athlon XP 1800+ on M/B K7T266 PRO2      
>Description:
When compiled with FreeBSD defaults (gcc-3.4.2), scmlit and scm crash
with "Segmentation Fault" in eval.c at the line 2090 with core dump:

eval.c: 2090 x = arg1;

If I trace the program with gdb and dumped core files, the variable
arg1 in the function "static SCM ceval_1(x)" disappears except when
compiled with the optimization option "-O0 (gcc default)."

This seems to be a gcc-3.4.2 bug because the program scompile and
work expectedly when compiled with gcc-3.4.3 from the port.
    
>How-To-Repeat:
/usr/ports/lang/scm% make     
>Fix:

	Use gcc-3.4.3 or later from the port or compile with
	"-DGCC_SPARC_BUG" if with gcc-3.4.2.

--- Makefile.diff begins here ---
*** Makefile~	Sun Sep 26 12:05:29 2004
--- Makefile	Sun Nov 14 06:01:28 2004
***************
*** 20,30 ****
  WRKSRC=		${WRKDIR}/${PORTNAME}
  
  USE_ZIP=	yes
  USE_REINPLACE=	yes
  USE_GMAKE=	yes
! MAKE_ARGS=	CC="${CC}" CFLAGS="${CFLAGS}"
  ALL_TARGET=	scmlit
  MAN1=		scm.1
  INFO=		scm
  
  PLIST_SUB=	VERSION=${PORTVERSION}
--- 20,30 ----
  WRKSRC=		${WRKDIR}/${PORTNAME}
  
  USE_ZIP=	yes
  USE_REINPLACE=	yes
  USE_GMAKE=	yes
! MAKE_ARGS=	CC="${CC}" CFLAGS="${CFLAGS} -DGCC_SPARC_BUG"
  ALL_TARGET=	scmlit
  MAN1=		scm.1
  INFO=		scm
  
  PLIST_SUB=	VERSION=${PORTVERSION}
***************
*** 35,51 ****
  SCM_MODULES=	crs.so edline.so gsubr.so ioext.so posix.so ramap.so \
  		record.so rgx.so sc2.so socket.so unix.so
  
  .include <bsd.port.pre.mk>
  
! .if ${OSVERSION} >= 502126
! BROKEN=		"Segfault during build"
! .endif
  
! .if ${ARCH} != "i386"
! BROKEN=		"Does not compile on !i386"
! .endif
  
  post-extract:
  	@${TAR} -C ${WRKDIR} -zxf ${DISTDIR}/slib-psd1-3.tar.gz
  	@${CP} ${FILESDIR}/require.scm.in ${WRKDIR}/require.scm
  
--- 35,51 ----
  SCM_MODULES=	crs.so edline.so gsubr.so ioext.so posix.so ramap.so \
  		record.so rgx.so sc2.so socket.so unix.so
  
  .include <bsd.port.pre.mk>
  
! #.if ${OSVERSION} >= 502126
! #BROKEN=		"Segfault during build"
! #.endif
  
! #.if ${ARCH} != "i386"
! #BROKEN=		"Does not compile on !i386"
! #.endif
  
  post-extract:
  	@${TAR} -C ${WRKDIR} -zxf ${DISTDIR}/slib-psd1-3.tar.gz
  	@${CP} ${FILESDIR}/require.scm.in ${WRKDIR}/require.scm
  
--- Makefile.diff ends here ---

--- patch-build.scm.diff begins here ---
*** patch-build.scm~	Sun Nov 14 06:03:35 2004
--- patch-build.scm	Sun Nov 14 06:07:08 2004
***************
*** 3,22 ****
  @@ -1438,7 +1438,7 @@
     (lambda (files parms)
       (and (batch:try-chopped-command
   	  parms
  -	  "cc" "-O3 -pipe " "-c"
! +	  "%%CC%%" "%%CFLAGS%%" "-c"
   	  (c-includes parms)
   	  (c-flags parms)
   	  files)
  @@ -1459,7 +1459,7 @@
     (lambda (files parms)
       (and (batch:try-chopped-command
   	  parms
  -	  "cc" "-O3 -pipe "
! +	  "%%CC%%" "%%CFLAGS%% -DGCC_SPARC_BUG "
   	  "-fPIC" "-c" (c-includes parms)
   	  (c-flags parms)
   	  files)
  @@ -1468,10 +1468,10 @@
   		 (lambda (fname)
--- 3,22 ----
  @@ -1438,7 +1438,7 @@
     (lambda (files parms)
       (and (batch:try-chopped-command
   	  parms
  -	  "cc" "-O3 -pipe " "-c"
! +	  "%%CC%%" "%%CFLAGS%% -DGCC_SPARC_BUG " "-c"
   	  (c-includes parms)
   	  (c-flags parms)
   	  files)
  @@ -1459,7 +1459,7 @@
     (lambda (files parms)
       (and (batch:try-chopped-command
   	  parms
  -	  "cc" "-O3 -pipe "
! +	  "%%CC%%" "%%CFLAGS%%"
   	  "-fPIC" "-c" (c-includes parms)
   	  (c-flags parms)
   	  files)
  @@ -1468,10 +1468,10 @@
   		 (lambda (fname)
--- patch-build.scm.diff ends here ---
     
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list