Opened 4 years ago

Last modified 4 years ago

#23700 closed enhancement

update gc to version 7.6 — at Version 18

Reported by: dimpase Owned by:
Priority: major Milestone: sage-8.2
Component: packages: standard Keywords:
Cc: fbissey, embray Merged in:
Authors: Dima Pasechnik Reviewers:
Report Upstream: N/A Work issues:
Branch: u/dimpase/gcupdate (Commits, GitHub, GitLab) Commit: 32b8eeba01a780943c24e58e8108582babeec8b7
Dependencies: #23701 Stopgaps:

Status badges

Description (last modified by dimpase)

An update to gc is needed to support arm64/aarch64, see #23687, as well as for FreeBSD support, see #22679.

The source is here: http://www.hboehm.info/gc/gc_source/gc-7.6.0.tar.gz

On some platforms this new version also needs libatomic_ops, see #23701

Change History (18)

comment:1 Changed 4 years ago by dimpase

  • Dependencies set to #23701
  • Description modified (diff)

comment:2 Changed 4 years ago by git

  • Commit changed from 37cbca100a8be09b868a9280550de5a039600cac to 277ddd77e391269febfa10a66c62f34f475b4181

Branch pushed to git repo; I updated commit sha1. New commits:

7d09a89libatomic_ops added as standard pkg
7c8c3e3Merge branch 'libatomic_ops' into gcupdate
277ddd7libatomic_ops is a dependency

comment:3 Changed 4 years ago by dimpase

  • Authors set to Dima Pasechnik
  • Cc fbissey embray added
  • Status changed from new to needs_review

Erik, could you please check whether this works on Cygwin without your patch?

(one need #23701 first, and re-running ./configure to register the new package)

comment:4 Changed 4 years ago by embray

Ah, yes. I remember this. I'll give it a go.

comment:5 Changed 4 years ago by embray

I think this branch needs to be updated on the latest version of #23701 since it's using 7.4.6 and this branch is using 7.4.4.

comment:6 Changed 4 years ago by git

  • Commit changed from 277ddd77e391269febfa10a66c62f34f475b4181 to e53f78480379ce726091927c870c0869cb115b40

Branch pushed to git repo; I updated commit sha1. New commits:

4d5bbd0libatomic_ops 7.4.6 added as standard pkg
e53f784Merge branch 'u/dimpase/libatomic_ops' of trac.sagemath.org:sage into gcupdate

comment:7 Changed 4 years ago by dimpase

You're right - done now.

comment:8 Changed 4 years ago by embray

Thanks--now it's working. Or at least, it's building. Can't say anything about tests right now.

comment:9 Changed 4 years ago by dimpase

on FreeBSD this needs the patch fixing https://github.com/ivmai/bdwgc/issues/132

comment:10 Changed 4 years ago by git

  • Commit changed from e53f78480379ce726091927c870c0869cb115b40 to 931652aecee2bd1d775ccbd8fcc18aa5d1afb0ee

Branch pushed to git repo; I updated commit sha1. New commits:

8166e21libatomic_ops 7.6.4 added as standard pkg
64da17fMerge branch 'libatomic_ops' into gcupdate
82eabaepatch for FreeBSD
931652aMerge branch 'u/dimpase/gcupdate' of trac.sagemath.org:sage into gcupdate

comment:11 Changed 4 years ago by dimpase

  • Status changed from needs_review to needs_work

On Linux tests pass, but I can trigger a nasty crash interactively:

sage: from sage.libs.ecl import *
sage: from sage.interfaces.maxima_lib import <TAB>

Debian experimental uses gc 7.4.4, so this would be one to test for this regression, too.

Last edited 4 years ago by dimpase (previous) (diff)

comment:12 Changed 4 years ago by dimpase

With GC included in ECL (tagged version 7.5.0 in ECL source, although I haven't checked how canonical this is) I do get the crash in comment 11.

comment:13 Changed 4 years ago by git

  • Commit changed from 931652aecee2bd1d775ccbd8fcc18aa5d1afb0ee to e365c32caf4e82cc9f6a43f066d8314313756248

Branch pushed to git repo; I updated commit sha1. New commits:

f9ca589Merge branch 'u/dimpase/gcupdate' of trac.sagemath.org:sage into gc76
e365c32backported patch for FreeBSD support

comment:14 Changed 4 years ago by dimpase

  • Status changed from needs_work to needs_review

comment:15 Changed 4 years ago by embray

  • Status changed from needs_review to needs_work

Turns out this is still not building properly on Cygwin. It fails to produce a shared lib at link time:

/bin/sh ./libtool  --tag=CC   --mode=link gcc   -fexceptions -Wall -Wextra -O2 -g  -fno-strict-aliasing  -version-info 1:3:0 -no-undefined -L/home/embray/src/sagemath/sage/local/lib -Wl,-rpath,/home/embray/src/sagemath/sage/local/lib  -o libgc.la -rpath /home/embray/src/sagemath/sage/local/lib allchblk.lo alloc.lo blacklst.lo checksums.lo dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo mach_dep.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 reclaim.lo specific.lo stubborn.lo thread_local_alloc.lo typd_mlc.lo win32_threads.lo     fnlz_mlc.lo    -L/home/embray/src/sagemath/sage/local/lib -latomic_ops
mv -f cord/.deps/libcord_la-cordxtra.Tpo cord/.deps/libcord_la-cordxtra.Plo

*** Warning: linker path does not have real file for library -latomic_ops.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libatomic_ops and none of the candidates passed a file format test
*** using a file magic. Last file checked: /home/embray/src/sagemath/sage/local/lib/libatomic_ops.a
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.

*** Since this library must not contain undefined symbols,
*** because either the platform does not support them or
*** it was explicitly requested with -no-undefined,
*** libtool will only create a static version of it.
libtool: link: ar cru .libs/libgc.a  allchblk.o alloc.o blacklst.o checksums.o dbg_mlc.o dyn_load.o finalize.o gc_dlopen.o gcj_mlc.o headers.o mach_dep.o malloc.o mallocx.o mark.o mark_rts.o misc.o new_hblk.o obj_map.o os_dep.o pcr_interface.o ptr_chck.o real_malloc.o reclaim.o specific.o stubborn.o thread_local_alloc.o typd_mlc.o win32_threads.o fnlz_mlc.o
libtool: link: ranlib .libs/libgc.a
libtool: link: ( cd ".libs" && rm -f "libgc.la" && ln -s "../libgc.la" "libgc.la" )
/bin/sh ./libtool  --tag=CC   --mode=link gcc   -fexceptions -Wall -Wextra -O2 -g  -fno-strict-aliasing -version-info 1:3:0 -no-undefined -L/home/embray/src/sagemath/sage/local/lib -Wl,-rpath,/home/embray/src/sagemath/sage/local/lib  -o libcord.la -rpath /home/embray/src/sagemath/sage/local/lib cord/libcord_la-cordbscs.lo cord/libcord_la-cordprnt.lo cord/libcord_la-cordxtra.lo ./libgc.la

*** Warning: This system cannot link to static lib archive ./libgc.la.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have.

*** Warning: linker path does not have real file for library -latomic_ops.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libatomic_ops and none of the candidates passed a file format test
*** using a file magic. Last file checked: /home/embray/src/sagemath/sage/local/lib/libatomic_ops.a
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.

*** Since this library must not contain undefined symbols,
*** because either the platform does not support them or
*** it was explicitly requested with -no-undefined,
*** libtool will only create a static version of it.
libtool: link: ar cru .libs/libcord.a  cord/libcord_la-cordbscs.o cord/libcord_la-cordprnt.o cord/libcord_la-cordxtra.o
libtool: link: ranlib .libs/libcord.a
libtool: link: ( cd ".libs" && rm -f "libcord.la" && ln -s "../libcord.la" "libcord.la" )

It's probably a minor issue with link flag ordering. I will investigate and provide a solution.

comment:16 Changed 4 years ago by git

  • Commit changed from e365c32caf4e82cc9f6a43f066d8314313756248 to 32b8eeba01a780943c24e58e8108582babeec8b7

Branch pushed to git repo; I updated commit sha1. New commits:

7b0f626Merge branch 'u/dimpase/libatomic_ops' of trac.sagemath.org:sage into laup
5c5d8f6remove meaningless flags
32b8eebMerge branch 'u/dimpase/gcupdate' of trac.sagemath.org:sage into laup

comment:17 Changed 4 years ago by dimpase

updated the branch to take into account update on #23701

Last edited 4 years ago by dimpase (previous) (diff)

comment:18 Changed 4 years ago by dimpase

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