Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#11883 closed defect (fixed)

fix boehm-gc so it builds on OS X Lion

Reported by: jhpalmieri Owned by: tbd
Priority: major Milestone: sage-4.8
Component: packages: standard Keywords: boehm-gc lion
Cc: leif Merged in: sage-4.8.alpha0
Authors: John Palmieri Reviewers: William Stein
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by jdemeyer)

As the summary says. A new spkg is available here:

This also upgrades to version 7.2.alpha6. According to the boehm-gc website, the current stable version (7.1, which is what is included in Sage) "is old enough that you are almost certainly better off going with the much more recent and only somewhat experimental version", namely 7.2.alpha6.

The home base for this ticket is the Lion ticket #11881.

See #12126 for a follow-up.

Attachments (2)

trac_11883-boehm-gc.patch (14.3 KB) - added by jhpalmieri 8 years ago.
patch for boehm-gc spkg, for review only
trac_11883-rm.patch (1.3 KB) - added by jhpalmieri 8 years ago.
patch for boehm-gc p1 spkg, for review only

Download all attachments as: .zip

Change History (20)

Changed 8 years ago by jhpalmieri

patch for boehm-gc spkg, for review only

comment:1 Changed 8 years ago by jhpalmieri

  • Description modified (diff)
  • Status changed from new to needs_review

comment:2 Changed 8 years ago by leif

  • Cc leif added

comment:3 Changed 8 years ago by kcrisman

  • Description modified (diff)

comment:4 Changed 8 years ago by Snark

That spkg also compiles on my ARM box (bug #10285) ; which isn't the case of the one in 4.7.2-alpha4.

comment:5 Changed 8 years ago by was

This builds fine on OS X 10.7 for me. It also still builds on Linux, and works. The changes to the spkg look fine to me too. Thus... positive review.

comment:6 Changed 8 years ago by was

  • Status changed from needs_review to positive_review

comment:7 Changed 8 years ago by jhpalmieri

For what it's worth, I've also built this successfully on all of the skynet machines that I have access to: cicero, cleo, eno, iras, flavius, mark, silius, and taurus. It also builds on David Kirkby's OpenSolaris machine hawk.

comment:8 Changed 8 years ago by leif

  • Reviewers set to William Stein

comment:9 Changed 8 years ago by jdemeyer

  • Milestone changed from sage-4.7.2 to sage-4.7.3

comment:10 Changed 8 years ago by jdemeyer

  • Merged in set to sage-4.7.3.alpha0
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:11 Changed 8 years ago by jdemeyer

  • Milestone sage-4.7.3 deleted

Milestone sage-4.7.3 deleted

comment:12 Changed 8 years ago by jdemeyer

  • Merged in changed from sage-4.7.3.alpha0 to sage-4.8.alpha0
  • Milestone set to sage-4.8

comment:13 Changed 8 years ago by jdemeyer

Under some circumstances, this fails to install on older versions of Sage, which is a problem for upgrading. I will investigate, but it is possible that this spkg will need to be unmerged. It happens for example on sage-4.5.3 using gcc 4.5.1 on sage.math:

/bin/bash ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H   -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src  -
fexceptions -g -O2 -MT mach_dep.lo -MD -MP -MF .deps/mach_dep.Tpo -c -o mach_dep.lo mach_dep.c
rm: cannot remove `mach_dep.o': No such file or directory
rm: cannot remove `.libs/mach_dep.o': No such file or directory
rm: cannot remove `mach_dep.lo': No such file or directory
rm: cannot remove `mach_dep.loT': No such file or directory
libtool: compile:  gcc -DHAVE_CONFIG_H -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src -fexceptions -g -O2 -MT mach_de
p.lo -MD -MP -MF .deps/mach_dep.Tpo -c mach_dep.c  -fPIC -DPIC -o .libs/mach_dep.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src -fexceptions -g -O2 -MT mach_de
p.lo -MD -MP -MF .deps/mach_dep.Tpo -c mach_dep.c -o mach_dep.o >/dev/null 2>&1
mv -f .deps/mach_dep.Tpo .deps/mach_dep.Plo
/bin/bash ./libtool --tag=CC   --mode=link gcc -fexceptions -g -O2  -version-info 1:3:0 -no-undefined  -o libgc.la -rpath /mnt/usb1/scratc
h/jdemeyer/sage-4.5.3/local/lib allchblk.lo alloc.lo blacklst.lo checksums.lo dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo h
eaders.lo malloc.lo mallocx.lo mark.lo mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo pcr_interface.lo ptr_chck.lo real_malloc.lo re
claim.lo specific.lo stubborn.lo typd_mlc.lo backgraph.lo thread_local_alloc.lo pthread_start.lo pthread_support.lo pthread_stop_world.lo
  atomic_ops.lo mach_dep.lo -lpthread -ldl
libtool: link: gcc -shared  -fPIC -DPIC  .libs/allchblk.o .libs/alloc.o .libs/blacklst.o .libs/checksums.o .libs/dbg_mlc.o .libs/dyn_load.
o .libs/finalize.o .libs/gc_dlopen.o .libs/gcj_mlc.o .libs/headers.o .libs/malloc.o .libs/mallocx.o .libs/mark.o .libs/mark_rts.o .libs/mi
sc.o .libs/new_hblk.o .libs/obj_map.o .libs/os_dep.o .libs/pcr_interface.o .libs/ptr_chck.o .libs/real_malloc.o .libs/reclaim.o .libs/spec
ific.o .libs/stubborn.o .libs/typd_mlc.o .libs/backgraph.o .libs/thread_local_alloc.o .libs/pthread_start.o .libs/pthread_support.o .libs/
pthread_stop_world.o .libs/atomic_ops.o .libs/mach_dep.o   -lpthread -ldl  -O2   -Wl,-soname -Wl,libgc.so.1 -o .libs/libgc.so.1.0.3
libtool: link: (cd ".libs" && rm "libgc.so.1" && ln -s "libgc.so.1.0.3" "libgc.so.1")
rm: cannot remove `libgc.so.1': No such file or directory
make[1]: *** [libgc.la] Error 1
make[1]: Leaving directory `/mnt/usb1/scratch/jdemeyer/sage-4.5.3/spkg/build/boehm_gc-7.2.alpha6.p0/src'
make: *** [all-recursive] Error 1
Error building BoehmGC.

comment:14 Changed 8 years ago by jhpalmieri

  • Description modified (diff)

Okay, I think I know how to fix this: add these lines to spkg-install:

  • spkg-install

    diff --git a/spkg-install b/spkg-install
    a b if [ $? -ne 0 ]; then 
    3939   exit 1
    4040fi
    4141
     42if [ "$RM" = 'rm' ]; then
     43   unset RM
     44fi
     45
    4246make
    4347if [ $? -ne 0 ]; then
    4448   echo "Error building BoehmGC."

In Sage 4.5.3's version of sage-env, we used to have

if [ "$RM" = "" ]; then
    RM="rm"  && export RM
fi

We no longer have these lines, and their presence in 4.5.3 is why the upgrade fails. So forcibly unsetting $RM if it's set to 'rm' fixes the problem, at least for me.

I've posted a new spkg, listed in the ticket description, and a corresponding patch, for review. (It's simple enough that maybe we don't need a new ticket.)

comment:15 Changed 8 years ago by jdemeyer

Could you add a comment like

# In order to allow upgrades from versions < 4.7.1 of Sage,
# we should not set $RM to "rm".  See
# http://trac.sagemath.org/sage_trac/ticket/3537
# http://trac.sagemath.org/sage_trac/ticket/11883#comment:13
if [ "$RM" = 'rm' ]; then
   unset RM
fi

comment:16 Changed 8 years ago by jhpalmieri

Okay, I've posted a new version with a comment like that.

comment:17 Changed 8 years ago by jhpalmieri

  • Keywords boehm-gc added; boehm-bc removed

Changed 8 years ago by jhpalmieri

patch for boehm-gc p1 spkg, for review only

comment:18 Changed 8 years ago by jdemeyer

  • Description modified (diff)
Note: See TracTickets for help on using tickets.