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

dai inukai.d at jeans.ocn.ne.jp
Wed Nov 17 15:09:20 UTC 2004


Thanks for reply.

I first posted to

http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/71684

to point out the location of the problem with no followups and I
sent-pr to ports/73914.

% uname -a
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

% cc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.4.2 [FreeBSD] 20040728

# Maybe the bug is fixed with gcc version 3.4.2 20040806 (prerelease)
# [FreeBSD] but the FreeBSD system CC is still from 20040728.

% cd /usr/ports/lang/scm && make
===>  scm-5d9_1 is marked as broken: Segfault during build.

% cat Makefile
...
#.if ${OSVERSION} >= 502126
#BROKEN=		"Segfault during build"
#.endif

#.if ${ARCH} != "i386"
#BROKEN=		"Does not compile on !i386"
#.endif

...

% env "LANG=C" make -V CFLAGS?
env: something like "No match for the query pattern" in Japanese.

% make CFLAGS=-O2
===>  Vulnerability check disabled
===>  Extracting for scm-5d9_1
>> Checksum OK for scm5d9.zip.
>> Checksum OK for slib3a1.zip.
>> Checksum OK for slib-psd1-3.tar.gz.
===>   scm-5d9_1 depends on executable: unzip - found
===>  Patching for scm-5d9_1
===>  Applying FreeBSD patches for scm-5d9_1
===>   scm-5d9_1 depends on executable: gmake - found
===>  Configuring for scm-5d9_1
===>  Building for scm-5d9_1
Makefile:69: srcdir.mk: No such file or directory
echo "CPROTO=`type cproto | sed 's%.* %%'`" > srcdir.mk

(snip)

e.o findexec.o script.o debug.o scmmain.o 
sys.o(.text+0x57f): In function `ltmpnam':
: warning: warning: tmpnam() possibly used unsafely; consider using mkstemp()
gmake checklit
gmake[1]: Entering directory `/usr/ports/lang/scm/work/scm'
./scmlit -fr4rstest.scm -e'(test-sc4)(test-cont)(test-delay)(gc)' \
-e '(or (null? errs) (quit 1))'
gmake[1]: *** [checklit] Segmentation fault (core dumped)
gmake[1]: Leaving directory `/usr/ports/lang/scm/work/scm'
gmake: *** [scmlit] Error 2
*** Error code 2

Stop in /usr/ports/lang/scm.

% make clean && make CFLAGS=-O0
(snip)

>> Checksum OK for scm5d9.zip.
>> Checksum OK for slib3a1.zip.
>> Checksum OK for slib-psd1-3.tar.gz.

(snip)

gmake checklit
gmake[1]: Entering directory `/usr/ports/lang/scm/work/scm'
./scmlit -fr4rstest.scm -e'(test-sc4)(test-cont)(test-delay)(gc)' \
-e '(or (null? errs) (quit 1))'
SECTION(2 1)
SECTION(3 4)
(snip)
SECTION(6 10 4)
(load (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)))  ==> (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c))

Passed all tests

;testing continuations; 
SECTION(6 9)

(snip)

Passed all tests

;testing DELAY and FORCE; 
SECTION(6 9)
(delay 3)  ==> 3
(delay (3 3))  ==> (3 3)
(delay 2)  ==> 2
(#<primitive-procedure force> #<promise #<CLOSURE test-delay "r4rstest.scm", line 1108: () (begin (set! count (+ count 1)) (if (> count x) count (force p)))>>)  ==> 6
(#<primitive-procedure force> #<promise 6>)  ==> 6
(force 3)  ==> 3

Passed all tests
gmake[1]: Leaving directory `/usr/ports/lang/scm/work/scm'

(snip)

In file included from rgx.c:47:
/usr/include/gnuregex.h:31:2: warning: #warning "Use -I/usr/include/gnu and <regex.h> instead of <gnuregex.h>"
(system "cc -shared -o ramap.so ramap.o")
(delete-file "ramap.o")
(system "cc -shared -o socket.so socket.o")
(delete-file "socket.o")
(system "cc -shared -o unix.so unix.o")
(delete-file "unix.o")
(system "cc -shared -o posix.so posix.o")
(delete-file "posix.o")
(system "cc -shared -o ioext.so ioext.o")
(delete-file "ioext.o")
(system "cc -shared -o gsubr.so gsubr.o")
(delete-file "gsubr.o")
(system "cc -shared -o record.so record.o")
(delete-file "record.o")
(system "cc -shared -o rgx.so rgx.o")
(delete-file "rgx.o")
(system "cc -shared -o sc2.so sc2.o")
(delete-file "sc2.o")
; ================ Link C object files
(delete-file "slibcat")


%  cd work/scm
daip:/usr/ports/lang/scm/work/scm% ./scm
SCM version 5d9, Copyright (C) 1990-2002 Free Software Foundation.
SCM comes with ABSOLUTELY NO WARRANTY; for details type `(terms)'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `(terms)' for details.
;loading /usr/local/lib/slib/require
;done loading /usr/local/lib/slib/require.scm
;loading /usr/ports/lang/scm/work/scm/Link
;done loading /usr/ports/lang/scm/work/scm/Link.scm
;loading /usr/ports/lang/scm/work/scm/Transcen
;done loading /usr/ports/lang/scm/work/scm/Transcen.scm
> ;EXIT
daip:/usr/ports/lang/scm/work/scm%

The compilation finishes successfully with "-O0" but there are some
loss in significant digits, which is told by "./scm -l r4rstest."

% make "CFLAGS=-O3 -DGCC_SPARC_BUG"

or

% make CC=gcc34 CFLAGS=-O3

is needed to have scm working with my actual system.

% gcc34 -v
Reading specs from /usr/local/lib/gcc/i386-portbld-freebsd5.3/3.4.3/specs
Configured with: ./..//gcc-3.4-20041029/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=34 --with-gxx-include-dir=/usr/local/lib/gcc/i386-portbld-freebsd5.3/3.4.3/include/c++/ --disable-shared --prefix=/usr/local i386-portbld-freebsd5.3
Thread model: posix
gcc version 3.4.3 20041029 (prerelease) [FreeBSD]

Regards.

dai -- http://www4.ocn.ne.jp/~inukai/scheme.html



More information about the freebsd-ports-bugs mailing list