Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libgap: Remove some GC hazards #35114

Merged
merged 25 commits into from
Mar 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8b272d3
Adapt to API changes in OpenOutputStream and CloseOutput
antonio-rojas Aug 29, 2022
1c8832f
Disable colored prompt as it breaks the pexpect interface
antonio-rojas Aug 29, 2022
4b5ed43
Port NaturalHomomorphism uses
antonio-rojas Aug 29, 2022
b1a8121
Fix tests with GAP 4.12
antonio-rojas Aug 29, 2022
b24d42e
Adapt test to new is_transitive and is_primitive behavior
antonio-rojas Sep 30, 2022
271a5ba
Mark test as random. With gap 4.12 on x86_64 it is no longer 2
antonio-rojas Sep 30, 2022
8c8d756
Remove test that is now redundant, all seeds give the same answer
antonio-rojas Sep 30, 2022
21537e7
install gap 4.12.0
dimpase Oct 17, 2022
da558e1
upgrade libsemigroup and gap_packages
dimpase Oct 17, 2022
821f9da
add GAP upstream PR 5077
dimpase Oct 17, 2022
c5410a2
also, fix the package names etc
dimpase Oct 17, 2022
f30806e
update GAP to 4.12.1
dimpase Oct 21, 2022
ca2d08d
install GAP package singular - new dependency of liepring
dimpase Oct 21, 2022
41cf212
moved install of radiroot to gap from gap_packages
dimpase Oct 23, 2022
2f552b0
moved install of autodoc and utils to gap from gap_packages
dimpase Oct 23, 2022
32c4a63
don't use SAGE_LOCAL/share/gap, switch to GAP's "make install"
dimpase Nov 4, 2022
85849a2
Search for files in both lib/gap and share/gap
antonio-rojas Nov 4, 2022
575c6b2
Create lib/gap/bin on install
antonio-rojas Nov 4, 2022
3a73005
ensure make gap-clean still works
dimpase Nov 13, 2022
3c1d422
with SAGE_CHECK=yes, one needs io installed to prevent hangs
dimpase Nov 13, 2022
b335ec9
backport GAP PR 5235
dimpase Dec 1, 2022
5ed4447
update GAP to 4.12.2
dimpase Jan 7, 2023
c70ae12
bump libsemigroups to v2.3.2
dimpase Jan 7, 2023
9c344ab
Merge branch 'develop' into u/dimpase/packages/gap/4_12_2
dimpase Feb 25, 2023
5f9d256
Surround GAP_ValueGlobalVariable calls by GAP_Enter/GAP_Leave
collares Sep 23, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions build/pkgs/gap/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
tarball=gap-VERSION.tar.gz
sha1=4ecdd281b8f430282fb9b12690b06e0a26abde10
md5=85dc9e459d5b6c66fcad9f468afd3e3e
cksum=1351843158
sha1=a6e36f3f874a2c46f51561402634497eab705cca
md5=c5cd9f272f2703d7a3649ad7193b2d90
cksum=2760477284
upstream_url=https://github.com/gap-system/gap/releases/download/vVERSION/gap-VERSION.tar.gz
2 changes: 1 addition & 1 deletion build/pkgs/gap/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4.11.1
4.12.2
7 changes: 7 additions & 0 deletions build/pkgs/gap/spkg-check.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ cd src
# #28728: Fix test failure in tst/testinstall/strings.tst
export LC_CTYPE=en_US.UTF-8

# #34391: in GAP 4.12 some packages need GAP package io
# to let tests run, otherwise this hangs. Thus we install io here.
cd pkg/io
./configure --with-gaproot=../..
make
cd ../..

make testinstall
if [[ $? -ne 0 ]]; then
exit 1
Expand Down
96 changes: 25 additions & 71 deletions build/pkgs/gap/spkg-install.in
Original file line number Diff line number Diff line change
Expand Up @@ -8,46 +8,25 @@ export CFLAGS=$CFLAGS_NON_NATIVE
export CXXFLAGS=$CXXFLAGS_NON_NATIVE

GAP_BUILD_ROOT="$(pwd)"
GAP_ROOT="$SAGE_LOCAL/share/gap"
DESTDIR_GAP_ROOT="$SAGE_DESTDIR$GAP_ROOT"
GAP_ROOT="$SAGE_LOCAL/lib/gap"

# Enable debug info if requested.
# Note that -g3 allows you to use preprocessor macros in gdb which are widely used
if [ "$SAGE_DEBUG" = yes ] ; then
export CFLAGS="-O0 -g3 -DDEBUG_MASTERPOINTERS -DDEBUG_GLOBAL_BAGS -DDEBUG_FUNCTIONS_BAGS $CFLAGS"
fi

sdh_configure $SAGE_CONFIGURE_GMP
sdh_make -j1
# LDFLAGS hack below needed by Semigroups package
sdh_configure $SAGE_CONFIGURE_GMP LDFLAGS="-pthread" --prefix=$SAGE_LOCAL
sdh_make

# GAP's "make install" is work in progress; we use bits and pieces of it
# but we install many things manually.
sdh_make install-headers install-libgap

# Install config.h, which is not currently handled by `make install-headers`
sdh_install gen/config.h "$SAGE_LOCAL/include/gap"

# Now install the gap executable as "gap-bin"; it will be called normally
# through our wrapper script that sets the appropriate GAP_ROOT
SAGE_BIN="$SAGE_LOCAL/bin"
mkdir -p "$SAGE_DESTDIR$SAGE_BIN" || sdh_die "Failed to create the directory $SAGE_BIN"

./libtool --mode=install install gap "$SAGE_DESTDIR$SAGE_BIN/gap-bin" || \
sdh_die "Failed to install gap-bin to $SAGE_BIN"

./libtool --mode=install install gac "$SAGE_DESTDIR$SAGE_BIN/gac" || \
sdh_die "Failed to install gac to $SAGE_BIN"

# Now copy additional files GAP needs to run (and a few optional bits) into
# GAP_ROOT; we don't need everything from the source tree
sdh_install bin doc gen grp lib src tst sysinfo.gap "$GAP_ROOT"

# GAP's copy of libtool is also used by the toolchain for build GAP packages
# (i.e. by gac)
sdh_install libtool "$GAP_ROOT"
sdh_make_install
# sdh_make install-headers install-libgap
# The 'packagemanager' package expects this https://github.com/gap-packages/PackageManager/issues/105
mkdir -p "$SAGE_LOCAL/lib/gap/bin"

# Install only the minimal packages GAP needs to run
sdh_install pkg/GAPDoc-* pkg/primgrp-* pkg/SmallGrp-* pkg/transgrp "$GAP_ROOT"/pkg
sdh_install pkg/gapdoc pkg/primgrp pkg/smallgrp pkg/transgrp "$GAP_ROOT"/pkg

# Install additional packages that are not strictly required, but that are
# typically "expected" to be loaded: These are the default packages that are
Expand All @@ -58,50 +37,25 @@ sdh_install pkg/GAPDoc-* pkg/primgrp-* pkg/SmallGrp-* pkg/transgrp "$GAP_ROOT"/p
# Also include atlasrep which is a dependency of tomlib
sdh_install \
pkg/atlasrep \
pkg/autpgrp-* \
pkg/alnuth-* \
pkg/crisp-* \
pkg/ctbllib-* \
pkg/FactInt-* \
pkg/autodoc \
pkg/autpgrp \
pkg/alnuth \
pkg/crisp \
pkg/ctbllib \
pkg/factint \
pkg/fga \
pkg/irredsol-* \
pkg/laguna-* \
pkg/PackageManager-* \
pkg/polenta-* \
pkg/polycyclic-* \
pkg/resclasses-* \
pkg/sophus-* \
pkg/tomlib-* \
pkg/irredsol \
pkg/laguna \
pkg/packagemanager \
pkg/polenta \
pkg/polycyclic \
pkg/radiroot \
pkg/resclasses \
pkg/sophus \
pkg/tomlib \
pkg/utils \
"$GAP_ROOT"/pkg

# Install the GAP startup script; ensure it is executable
sdh_install -T ../gap "$SAGE_BIN/gap"
chmod +x "$SAGE_DESTDIR$SAGE_BIN/gap"

# Create symlinks under $GAP_ROOT for these executables, as they are expected
# (especially when building kernel packages) to exist
ln -sf "../../bin/gap-bin" "$DESTDIR_GAP_ROOT/gap"
ln -sf "../../bin/gac" "$DESTDIR_GAP_ROOT/gac"

# Fix the $GAP_ROOT/bin/<arch>/src symlink to be relative (otherwise it links
# to the actual path of the sources GAP was compiled from)
for srclink in "$DESTDIR_GAP_ROOT"/bin/*/src; do
rm -f "$srclink"
ln -s "../../src" "$srclink"
done

# Additional fixups for some files after they have been copied into their
# destination directory. gac and sysinfo.gap are generated files that contain
# in them hard-coded references to the GAP build directory, which will soon
# be going away. This breaks the build toolchain for some compiled GAP
# packages. We need to replace these paths with the final GAP_ROOT path. The
# below will work so long as neither of these paths contain '|', and if they do
# then god help you. https://github.com/sagemath/sage/issues/27218
sed -i -e "s|$GAP_BUILD_ROOT|$GAP_ROOT|g" \
"$SAGE_DESTDIR$SAGE_BIN/gac" "$DESTDIR_GAP_ROOT/sysinfo.gap" \
"$DESTDIR_GAP_ROOT/bin/gap.sh" "$DESTDIR_GAP_ROOT/doc/make_doc" || \
sdh_die "Failed to fix up hard-coded paths in GAP build tools."

# TODO: This seems unnecessary--we are already installing all of doc/ to
# GAP_ROOT, which is necessary for some functionality in GAP to work. Do
# we need this? Maybe doc/gap could just be a symlink to gap/doc??
Expand Down
4 changes: 3 additions & 1 deletion build/pkgs/gap/spkg-legacy-uninstall
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ rm -rf "$SAGE_LOCAL/gap/gap-4."*
rm -rf "$SAGE_SHARE/gap"
rm -f "$SAGE_LOCAL/gap/latest"
rm -f "$SAGE_LOCAL/bin/gap"
rm -f "$SAGE_LOCAL/bin/gac"

# Remove old libgap headers
# Remove old libgap headers and library
rm -rf "$SAGE_LOCAL/include/gap"
rm -rf "$SAGE_LOCAL/lib/gap"
6 changes: 0 additions & 6 deletions build/pkgs/gap/spkg-prerm.in

This file was deleted.

150 changes: 0 additions & 150 deletions build/pkgs/gap_packages/patches/cohomolo-gcc10.patch

This file was deleted.

13 changes: 0 additions & 13 deletions build/pkgs/gap_packages/patches/guava_leon_includes.patch

This file was deleted.

Loading