Hi Bruno,

l...@gnu.org (Ludovic Courtès) skribis:

> Bruno Haible <br...@clisp.org> skribis:
>
>> 8) On Linux/hppa and Linux/SPARC32 and Linux/IA-64, build failure in the
>> libguile directory:
>>
>>   SNARF  socket.doc
>>   SNARF  regex-posix.doc
>>   GEN    guile-procedures.texi
>> /bin/sh: line 1:  1022 Broken pipe             cat alist.doc arbiters.doc 
>> array-handle.doc array-map.doc arrays.doc async.doc backtrace.doc 
>> boolean.doc bitvectors.doc bytevectors.doc chars.doc control.doc 
>> continuations.doc debug.doc deprecated.doc deprecation.doc dynl.doc 
>> dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc extensions.doc 
>> feature.doc filesys.doc fluids.doc foreign.doc fports.doc gc-malloc.doc 
>> gc.doc gettext.doc generalized-arrays.doc generalized-vectors.doc goops.doc 
>> gsubr.doc guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc 
>> ioext.doc keywords.doc list.doc load.doc macros.doc mallocs.doc memoize.doc 
>> modules.doc numbers.doc objprop.doc options.doc pairs.doc ports.doc 
>> print.doc procprop.doc procs.doc promises.doc r6rs-ports.doc random.doc 
>> rdelim.doc read.doc root.doc rw.doc scmsigs.doc script.doc simpos.doc 
>> smob.doc sort.doc srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc 
>> srfi-60.doc stackchk.doc stacks.doc stime.doc strings.doc strorder.doc 
>> strports.doc struct.doc symbols.doc threads.doc throw.doc trees.doc 
>> uniform.doc values.doc variable.doc vectors.doc version.doc vports.doc 
>> weaks.doc dynl.doc posix.doc net_db.doc socket.doc regex-posix.doc
>>       1023 Segmentation fault      | GUILE_AUTO_COMPILE=0 
>> ../meta/uninstalled-env guild snarf-check-and-output-texi > 
>> guile-procedures.texi
>> make[3]: *** [guile-procedures.texi] Error 1
>
> I bisected this and found this harmless-looking patch to be the culprit:
>
>   
> http://git.savannah.gnu.org/cgit/guile.git/commit/?id=3e54fdfc217969abb50a46ec9c9c5c02a2c7d369
>
> The segfault would occur in vm-i-system.c:1281, in the ‘CACHE_PROGRAM’
> macro, while trying to access ‘SCM_PROGRAM_DATA’, because of a bogus
> value for ‘program’, stemming from a bogus ‘fp’.
>
> After a long and tiring period of investigation, I found that reverting
> just the definitions SCM_FRAME_DYNAMIC_LINK and
> SCM_FRAME_SET_DYNAMIC_LINK would solve the problem.
>
> Eventually, I found that, keeping frames.h unchanged, adding a compiler
> barrier after each ‘fp’ assignment would solve the problem:

I’ve checked this in:

  
http://git.sv.gnu.org/cgit/guile.git/commit/?h=stable-2.0&id=2b264d7e4fb649955ade1814527b6eb6f34f4e18

Closing the bug, because I think bugs were all addressed.  Let us know
if you think I got it wrong!

Thanks,
Ludo’.



Reply via email to