emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#10520: closed ([platform-testers] Guile 2.0.4 rele


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#10520: closed ([platform-testers] Guile 2.0.4 release imminent)
Date: Tue, 24 Jan 2012 22:55:02 +0000

Your message dated Tue, 24 Jan 2012 23:53:35 +0100
with message-id <address@hidden>
and subject line Re: bug#10520: [platform-testers] Guile 2.0.4 release imminent
has caused the debbugs.gnu.org bug report #10520,
regarding [platform-testers] Guile 2.0.4 release imminent
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
10520: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10520
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: Re: [platform-testers] Guile 2.0.4 release imminent Date: Mon, 16 Jan 2012 02:38:58 +0100 User-agent: KMail/4.7.4 (Linux/3.1.0-1.2-desktop; KDE/4.7.4; x86_64; ; )
Hi Ludo,

> We’d like to release GNU Guile 2.0.4 within the next few days.  The
> latest 2.0.x tarball can be found at:
> 
>   
> http://hydra.nixos.org/job/gnu/guile-2-0/tarball/latest/download-by-type/file/source-dist
> 
> Guile has the following dependencies:
> 
>   - libgmp 4.1+
>   - libiconv on non-GNU systems
>   - libintl on non-GNU systems
>   - libltdl (from GNU Libtool)
>   - libunistring
>   - libgc 7.x
>   - libffi

The build reports below are with
  gmp 5.0.2
  libiconv 1.14
  libintl 0.18.1.1
  libltdl 2.4.2
  libunistring 0.9.3
  gc 7.2alpha6
  libffi 3.0.10
  guile-2.0.3.152-c5f6c2

* gmp 5.0.2 has some configuration trouble on systems with recent
  coreutils utils installed. Could be worked around by setting NM=nm.
  It also has configuration trouble on bi-arch systems, that can be
  worked around by setting ABI=32.
  It also has configuration trouble on MacOS X 10.5 and mingw, that
  requires effort to work around.

* libintl 0.18.1.1 has configuration trouble on Solaris 11: must use
  --with-included-gettext, otherwise the gettext() function never actually
  returns the translations.

* libffi 3.0.10 has configuration trouble on OpenBSD, NetBSD, Solaris 11.
  Must use --disable-builddir as workaround.
  Also "make check" shows lots of test failures on Linux/SPARC64,
  NetBSD 5.1, Cygwin 1.7.9.

* gc 7.2alpha6 has compilation trouble and doesn't work reliably on
  NetBSD 5.1/x86 and on mingw.

Now about the configuration of guile itself.


1) On nearly all platforms, guile's configure does not find the libgc or
libffi library, although these packages were configured and installed
with the same --prefix as guile. The culprit is PKG_CONFIG_PATH.
guile's installation instruction don't mention it:

  - INSTALL doesn't mention PKG_CONFIG_PATH.

  - README mentions PKG_CONFIG_PATH only in the section "Using Guile
    Without Installing It", which is not my situation.

  - README's section "Required External Packages" mentions pkg-config,
    but it suggest to set BDW_GC_CFLAGS, BDW_GC_LIBS, LIBFFI_CFLAGS,
    LIBFFI_LIBS, which is even *more* complicated than setting
    PKG_CONFIG_PATH.

    How about changing that section to mention
      1) that pkg-config ought to be installed before libffi and libgc?
      2) that usually setting PKG_CONFIG_PATH to include
           $BDW_LIBDIR/pkgconfig:$LIBFFI_LIBDIR/pkgconfig:/usr/lib/pkgconfig
         will work,
      3) the BDW_GC_CFLAGS, BDW_GC_LIBS, LIBFFI_CFLAGS, LIBFFI_LIBS
         approach as a last resort.


2) On Linux/glibc/PowerPC, MacOS X 10.5, Cygwin, I happen not to have
pkg-config installed. But I have installed all the other packages!
The configuration fails:

checking for pkg-config... no
checking for LIBFFI... configure: error: in 
`/home/haible/multibuild-1614/linuxppc32/guile-2.0.3.152-c5f6c2':
configure: error: The pkg-config script could not be found or is too old.  Make 
sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

Isn't this a *gratuitous* build dependency?

Suggestion: Add code to configure.ac that searches for an installed
library, like it does for libgmp and libunistring (via
AC_LIB_HAVE_LINKFLAGS), before searching via pkg-config.

I won't install pkg-config. If you want me to test guile on Linux/PowerPC,
MacOS X 10.5, Cygwin, and mingw, provide an alternative.


3) On Solaris 11, the build fails:

$ make
...
Making all in libguile
make: Fatal error in reader: Makefile, line 3443: Macro assignment on 
dependency line
Current working directory 
/home/bruno/multibuild-1610/solaris11x8664/guile-2.0.3.152-c5f6c2/libguile
*** Error code 1

The line about which the Solaris 'make' is complaining is the blank line
between these two rules in libguile/Makefile:


.c.i:
        $(AM_V_GEN)$(GREP) '^VM_DEFINE' $< > $@

install-exec-hook:
        rm -f $(DESTDIR)$(bindir)/guile-snarf.awk
#    $(DOT_DOC_FILES) $(EXTRA_DOT_DOC_FILES) \
#    guile-procedures.txt guile.texi


The workaround is to use GNU make.


4) On Solaris 11 (both x86 and x86_64), the compilation fails in the
directory libguile:

  CC     libguile_2.0_la-filesys.lo
filesys.c: In function 'scm_readdir':
filesys.c:1716:34: error: 'DIR' has no member named 'dd_fd'
gmake[3]: *** [libguile_2.0_la-filesys.lo] Error 1

Instead of whacking your own implementation of dirfd, why not just
use the 'dirfd' module from gnulib? (Actually Solaris 11 has dirfd(),
it is declared as a function in <dirent.h>.) See
http://www.gnu.org/software/gnulib/manual/html_node/dirfd.html


5) On OpenBSD 4.6/SPARC64, compilation failure in libguile directory:

  CC     libguile_2.0_la-i18n.lo
i18n.c: In function `define_langinfo_items':
i18n.c:1747: error: `ERA' undeclared (first use in this function)
i18n.c:1747: error: (Each undeclared identifier is reported only once
i18n.c:1747: error: for each function it appears in.)
i18n.c:1748: error: `ERA_D_FMT' undeclared (first use in this function)
i18n.c:1749: error: `ERA_D_T_FMT' undeclared (first use in this function)
i18n.c:1751: error: `ERA_T_FMT' undeclared (first use in this function)
i18n.c:1753: error: `ALT_DIGITS' undeclared (first use in this function)
gmake[3]: *** [libguile_2.0_la-i18n.lo] Error 1

This could be easily fixed by including the gnulib module 'nl_langinfo'. See
http://www.gnu.org/software/gnulib/manual/html_node/nl_005flanginfo.html


6) On Linux/IA-64, compilation failure in libguile directory:

  CC     libguile_2.0_la-threads.lo
threads.c: In function 'guilify_self_1':
threads.c:554: error: 'struct GC_stack_base' has no member named 'reg'
make[3]: *** [libguile_2.0_la-threads.lo] Error 1

On this platform, gc/gc.h contains this definition:

/* Structure representing the base of a thread stack.  On most          */
/* platforms this contains just a single address.                       */
struct GC_stack_base {
  void * mem_base; /* Base of memory stack. */
# if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
    void * reg_base; /* Base of separate register stack. */
# endif
};

It looks like a typo in threads.c:554. Fix: s/reg-base/reg_base/


7) On NetBSD 5.1/x86_64, build failure:

Making all in module
  GUILEC ice-9/eval.go
GC Warning: Out of Memory! Heap size: 248 MiB. Returning NULL!
[1]   Segmentation fault (core dumped) GUILE_AUTO_COMPI...
*** Error code 139

What's the reason of an "Out of Memory"? The machine has 3 GB RAM, and
ca. 650 MB RAM and 6 GB of swap are free.


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


9) Test failure on Linux/glibc/i386 (32-bit build on a x86_64 machine):

FAIL: gc.test: gc: Lexical vars are collectable

Totals for this test run:
passes:                 34887
failures:               1
unexpected passes:      0
expected failures:      30
unresolved test cases:  18
untested test cases:    1
unsupported test cases: 9
errors:                 0


10) Linux/glibc/x86_64

All tests passed.

(This must be the platform that all guile developers use, I guess?)


Bruno

--- End Message ---
--- Begin Message --- Subject: Re: bug#10520: [platform-testers] Guile 2.0.4 release imminent Date: Tue, 24 Jan 2012 23:53:35 +0100 User-agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.90 (gnu/linux)
Hi Bruno,

address@hidden (Ludovic Courtès) skribis:

> Bruno Haible <address@hidden> 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’.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]