Skip to content

Fix race condition in package pari_seadata_small#41875

Merged
vbraun merged 2 commits intosagemath:developfrom
cxzhong:fix-race-condition
Apr 8, 2026
Merged

Fix race condition in package pari_seadata_small#41875
vbraun merged 2 commits intosagemath:developfrom
cxzhong:fix-race-condition

Conversation

@cxzhong
Copy link
Copy Markdown
Contributor

@cxzhong cxzhong commented Mar 23, 2026

[pari_galdata-20080411.p0] error installing, exit status 1. Log file:
  [pari_galdata-20080411.p0]   Attempting to download package pari_galdata-20080411.tar.bz2 from mirrors
  [pari_galdata-20080411.p0]   https://github.com/sagemath/sage/releases/download/10.9/pari_galdata-20080411.tar.bz2
  [pari_galdata-20080411.p0]   [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
  [pari_galdata-20080411.p0]   ERROR [transfer|run:137]: HTTP Error 404: Not Found
  [pari_galdata-20080411.p0]   https://github.com/sagemath/sage/releases/download/10.8/pari_galdata-20080411.tar.bz2
  [pari_galdata-20080411.p0]   [......................................................................]
  [pari_galdata-20080411.p0]   Setting up build directory /sage/local/var/tmp/sage/build/pari_galdata-20080411.p0
  [pari_galdata-20080411.p0]   No patch files found in ../patches
  [pari_galdata-20080411.p0]   Host system: Linux buildkitsandbox 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec  1 20:10:50 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
  [pari_galdata-20080411.p0]   C compiler: gcc, Using built-in specs., COLLECT_GCC=gcc, COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper, OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa, OFFLOAD_TARGET_DEFAULT=1, Target: x86_64-linux-gnu, Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2, Thread model: posix, Supported LTO compression algorithms: zlib zstd, gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
  [pari_galdata-20080411.p0]   No stamp file for package 'pari_galdata' in /sage/local/var/lib/sage/installed
  [pari_galdata-20080411.p0]   No spkg-legacy-uninstall script; nothing to do
  [pari_galdata-20080411.p0]   ::group::.log
  [pari_galdata-20080411.p0]   [spkg-install] src/galdata -> /sage/local/var/tmp/sage/build/pari_galdata-20080411.p0/inst/sage/local/share/pari
  [pari_galdata-20080411.p0]   ::endgroup::
  [pari_galdata-20080411.p0]   Moving package files from temporary location /sage/local/var/tmp/sage/build/pari_galdata-20080411.p0/inst to /sage/local
  [pari_galdata-20080411.p0]   cp: cannot create directory '/sage/local/./share/pari': File exists
  [pari_galdata-20080411.p0]   ************************************************************************
  [pari_galdata-20080411.p0]   Error moving files for pari_galdata-20080411.p0.
  [pari_galdata-20080411.p0]   ************************************************************************
  [pari_galdata-20080411.p0]   Please email sage-devel (http://groups.google.com/group/sage-devel)
  [pari_galdata-20080411.p0]   explaining the problem and including the log files
  [pari_galdata-20080411.p0]     /sage/logs/pkgs/pari_galdata-20080411.p0.log
  [pari_galdata-20080411.p0]   and
  [pari_galdata-20080411.p0]     /sage/config.log
  [pari_galdata-20080411.p0]   Describe your computer, operating system, etc.
  [pari_galdata-20080411.p0]   ************************************************************************
make[2]: *** [Makefile:3308: pari_galdata-SAGE_LOCAL-no-deps] Error 1
make[1]: *** [Makefile:3308: /sage/local/var/lib/sage/installed/pari_galdata-20080411.p0] Error 2
make --no-print-directory lrcalc-SAGE_LOCAL-no-deps
  [pari_seadata_small-20090618.p0] successfully installed.

It is a race condition caused by cp -Rp because two processes both find the folder is not exist. they both use mkdir to create. So it causes one fails and one successes

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 23, 2026

@cxzhong cxzhong requested a review from tobiasdiez March 23, 2026 08:21
@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 23, 2026

CC: @tobiasdiez for build problem

@cxzhong cxzhong requested a review from dimpase March 23, 2026 08:21
Copy link
Copy Markdown
Member

@dimpase dimpase left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the error only happening with Pari packages - pari-galpol, etc?

If so, it's easier to just make one of them, say, pari-galpol, a dependency for the rest of them.

Then pari-galpol will be installed first, and the race condition won't occur.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 23, 2026

Is the error only happening with Pari packages - pari-galpol, etc?

If so, it's easier to just make one of them, say, pari-galpol, a dependency for the rest of them.

Then pari-galpol will be installed first, and the race condition won't occur.

It seems yes, because they are going to create pari folder both. and I do not find other's packages need to do this thing.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 23, 2026

https://github.com/cxzhong/sage/actions/runs/23427310387/job/68144928840 build test

It runs well. I also found our build CI will hang on for some cases.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 23, 2026

I think replace cp by tar can solve this problem eventually.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 23, 2026

Documentation preview for this PR (built with commit 799b0eb; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@cxzhong cxzhong added the p: CI fix merged before running CI tests label Mar 24, 2026
@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 25, 2026

Is the error only happening with Pari packages - pari-galpol, etc?

If so, it's easier to just make one of them, say, pari-galpol, a dependency for the rest of them.

Then pari-galpol will be installed first, and the race condition won't occur.

I do not think it is right method, because it will mislead in the document. In fact, they do not have dependency relations.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 25, 2026

This fixes a potential race condition in sage-the-distro

@orlitzky
Copy link
Copy Markdown
Contributor

Are you sure the root cause is correct? cp -R will overwrite an existing directory. I guess it's possible that both install processes ran cp -R at exactly the same time and that they both saw the directory missing and tried to mkdir() it, but I find that pretty unlikely.

I think "install" would be better than tar here, but that is highly dependent on if/how tar solves the problem.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 25, 2026

Are you sure the root cause is correct? cp -R will overwrite an existing directory. I guess it's possible that both install processes ran cp -R at exactly the same time and that they both saw the directory missing and tried to mkdir() it, but I find that pretty unlikely.

I think "install" would be better than tar here, but that is highly dependent on if/how tar solves the problem.

Yes. two processes do not see the folders both.
we need some function do not cause this race condition. tar will omit this and continuous to write.

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 25, 2026

This happens really unusual. I found this in a linux build ci yesterday.

@orlitzky
Copy link
Copy Markdown
Contributor

If it's really a race condition between two instances of cp... are you sure that tar would fix the problem? What does tar do if a destination directory doesn't exist? It probably runs mkdir(), right?

@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 25, 2026

If it's really a race condition between two instances of cp... are you sure that tar would fix the problem? What does tar do if a destination directory doesn't exist? It probably runs mkdir(), right?

we just look https://raw.githubusercontent.com/gnu-mirror-unofficial/tar/master/src/extract.c
this is the source code of tar
It has

else if (errno == EEXIST)
	status = 0;

tar also use mkdir,but the error handle method is different.

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Mar 25, 2026

If it's really a race condition between two instances of cp... are you sure that tar would fix the problem? What does tar do if a destination directory doesn't exist? It probably runs mkdir(), right?

I think this should be fixed in the way I proposed, by letting all these packages, except one, to depend on the latter.

@cxzhong cxzhong force-pushed the fix-race-condition branch from 9422dd3 to d4a4577 Compare March 26, 2026 10:05
@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 26, 2026

But I think this still do not fix the root cause maybe.

@cxzhong cxzhong changed the title Fix race condition in package installation by using tar instead of cp Fix race condition in package pari_seadata_small Mar 26, 2026
@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 26, 2026

very strange error

  [libhomfly-1.03]   https://github.com/sagemath/sage/releases/download/10.8/libhomfly-1.03.tar.gz
  [libhomfly-1.03]   [......................................................................]
  [libhomfly-1.03]   Setting up build directory /Users/runner/work/sage/sage/local/var/tmp/sage/build/libhomfly-1.03
  [libhomfly-1.03]   No patch files found in ../patches
  [libhomfly-1.03]   Host system: Darwin iad20-fj925-061ff6d2-e7b8-4418-81e4-5d457ae2e9d4-76EF255B6AFB.local 24.6.0 Darwin Kernel Version 24.6.0: Mon Jan 19 22:02:01 PST 2026; root:xnu-11417.140.69.708.3~1/RELEASE_ARM64_VMAPPLE arm64
  [libhomfly-1.03]   C compiler: gcc -std=gnu23, Apple clang version 17.0.0 (clang-1700.0.13.5), Target: arm64-apple-darwin24.6.0, Thread model: posix, InstalledDir: /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
  [libhomfly-1.03]   No stamp file for package 'libhomfly' in /Users/runner/work/sage/sage/local/var/lib/sage/installed
  [libhomfly-1.03]   No spkg-legacy-uninstall script; nothing to do
  [libhomfly-1.03]   ::group::.log
  [libhomfly-1.03]   [spkg-install] Configuring libhomfly-1.03
  [libhomfly-1.03]   [spkg-install] configure: WARNING: unrecognized options: --disable-maintainer-mode
  [libhomfly-1.03]   [spkg-install] checking for a BSD-compatible install... /usr/bin/install -c
  [libhomfly-1.03]   [spkg-install] checking whether sleep supports fractional seconds... yes
  [libhomfly-1.03]   [spkg-install] checking filesystem timestamp resolution... 2
  [libhomfly-1.03]   [spkg-install] checking whether build environment is sane... yes
  [libhomfly-1.03]   [spkg-install] checking for a race-free mkdir -p... mkdir -p
  [libhomfly-1.03]   [spkg-install] checking for gawk... no
  [libhomfly-1.03]   [spkg-install] checking for mawk... no
  [libhomfly-1.03]   [spkg-install] checking for nawk... no
  [libhomfly-1.03]   [spkg-install] checking for awk... awk
  [libhomfly-1.03]   [spkg-install] checking whether make sets $(MAKE)... yes
  [libhomfly-1.03]   [spkg-install] checking whether make supports nested variables... yes
  [libhomfly-1.03]   [spkg-install] checking xargs -n works... yes
  [libhomfly-1.03]   [spkg-install] checking whether UID '501' is supported by ustar format... yes
  [libhomfly-1.03]   [spkg-install] checking whether GID '20' is supported by ustar format... yes
  [libhomfly-1.03]   [spkg-install] checking how to create a ustar tar archive... gnutar
  [libhomfly-1.03]   [spkg-install] checking whether make supports the include directive... yes (GNU style)
  [libhomfly-1.03]   [spkg-install] checking for gcc... gcc -std=gnu23
  [libhomfly-1.03]   [spkg-install] checking whether the C compiler works... yes
  [libhomfly-1.03]   [spkg-install] checking for C compiler default output file name... a.out
  [libhomfly-1.03]   [spkg-install] checking for suffix of executables... 
  [libhomfly-1.03]   [spkg-install] checking whether we are cross compiling... no
  [libhomfly-1.03]   [spkg-install] checking for suffix of object files... o
  [libhomfly-1.03]   [spkg-install] checking whether the compiler supports GNU C... yes
  [libhomfly-1.03]   [spkg-install] checking whether gcc -std=gnu23 accepts -g... yes
  [libhomfly-1.03]   [spkg-install] checking for gcc -std=gnu23 option to enable C11 features... none needed
  [libhomfly-1.03]   [spkg-install] checking whether gcc -std=gnu23 understands -c and -o together... yes
  [libhomfly-1.03]   [spkg-install] checking dependency style of gcc -std=gnu23... none
  [libhomfly-1.03]   [spkg-install] checking the archiver (ar) interface... ar
  [libhomfly-1.03]   [spkg-install] checking for gcc... (cached) gcc -std=gnu23
  [libhomfly-1.03]   [spkg-install] checking whether the compiler supports GNU C... (cached) yes
  [libhomfly-1.03]   [spkg-install] checking whether gcc -std=gnu23 accepts -g... (cached) yes
  [libhomfly-1.03]   [spkg-install] checking for gcc -std=gnu23 option to enable C11 features... (cached) none needed
  [libhomfly-1.03]   [spkg-install] checking whether gcc -std=gnu23 understands -c and -o together... (cached) yes
  [libhomfly-1.03]   [spkg-install] checking dependency style of gcc -std=gnu23... (cached) none
  [libhomfly-1.03]   [spkg-install] checking build system type... aarch64-apple-darwin24.6.0
  [libhomfly-1.03]   [spkg-install] checking host system type... aarch64-apple-darwin24.6.0
  [libhomfly-1.03]   [spkg-install] checking how to print strings... printf
  [libhomfly-1.03]   [spkg-install] checking for a sed that does not truncate output... /usr/bin/sed
  [libhomfly-1.03]   [spkg-install] checking for grep that handles long lines and -e... /usr/bin/grep
  [libhomfly-1.03]   [spkg-install] checking for egrep... /usr/bin/grep -E
  [libhomfly-1.03]   [spkg-install] checking for fgrep... /usr/bin/grep -F
  [libhomfly-1.03]   [spkg-install] checking for ld used by gcc -std=gnu23... /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
  [libhomfly-1.03]   [spkg-install] checking if the linker (/Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
  [libhomfly-1.03]   [spkg-install] checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
  [libhomfly-1.03]   [spkg-install] checking the name lister (/usr/bin/nm -B) interface... BSD nm
  [libhomfly-1.03]   [spkg-install] checking whether ln -s works... yes
  [libhomfly-1.03]   [spkg-install] checking the maximum length of command line arguments... 786432
  [libhomfly-1.03]   [spkg-install] checking how to convert aarch64-apple-darwin24.6.0 file names to aarch64-apple-darwin24.6.0 format... func_convert_file_noop
  [libhomfly-1.03]   [spkg-install] checking how to convert aarch64-apple-darwin24.6.0 file names to toolchain format... func_convert_file_noop
  [libhomfly-1.03]   [spkg-install] checking for /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
  [libhomfly-1.03]   [spkg-install] checking for file... file
  [libhomfly-1.03]   [spkg-install] checking for objdump... objdump
  [libhomfly-1.03]   [spkg-install] checking how to recognize dependent libraries... pass_all
  [libhomfly-1.03]   [spkg-install] checking for dlltool... no
  [libhomfly-1.03]   [spkg-install] checking how to associate runtime and link libraries... printf %s\n
  [libhomfly-1.03]   [spkg-install] checking for ranlib... ranlib
  [libhomfly-1.03]   [spkg-install] checking for archiver @FILE support... no
  [libhomfly-1.03]   [spkg-install] checking for strip... strip
  [libhomfly-1.03]   [spkg-install] checking command to parse /usr/bin/nm -B output from gcc -std=gnu23 object... ok
  [libhomfly-1.03]   [spkg-install] checking for sysroot... no
  [libhomfly-1.03]   [spkg-install] checking for a working dd... /bin/dd
  [libhomfly-1.03]   [spkg-install] checking how to truncate binary pipes... /bin/dd bs=4096 count=1
  [libhomfly-1.03]   [spkg-install] checking for mt... no
  [libhomfly-1.03]   [spkg-install] checking if : is a manifest tool... no
  [libhomfly-1.03]   [spkg-install] checking for dsymutil... dsymutil
  [libhomfly-1.03]   [spkg-install] checking for nmedit... nmedit
  [libhomfly-1.03]   [spkg-install] checking for lipo... lipo
  [libhomfly-1.03]   [spkg-install] checking for otool... otool
  [libhomfly-1.03]   [spkg-install] checking for otool64... no
  [libhomfly-1.03]   [spkg-install] checking for -single_module linker flag... ld: warning: -single_module is obsolete
  [libhomfly-1.03]   [spkg-install] no
  [libhomfly-1.03]   [spkg-install] checking for -no_fixup_chains linker flag... yes
  [libhomfly-1.03]   [spkg-install] checking for -exported_symbols_list linker flag... yes
  [libhomfly-1.03]   [spkg-install] checking for -force_load linker flag... yes
  [libhomfly-1.03]   [spkg-install] checking for stdio.h... yes
  [libhomfly-1.03]   [spkg-install] checking for stdlib.h... yes
  [libhomfly-1.03]   [spkg-install] checking for string.h... yes
  [libhomfly-1.03]   [spkg-install] checking for inttypes.h... yes
  [libhomfly-1.03]   [spkg-install] checking for stdint.h... yes
  [libhomfly-1.03]   [spkg-install] checking for strings.h... yes
  [libhomfly-1.03]   [spkg-install] checking for sys/stat.h... yes
  [libhomfly-1.03]   [spkg-install] checking for sys/types.h... yes
  [libhomfly-1.03]   [spkg-install] checking for unistd.h... yes
  [libhomfly-1.03]   [spkg-install] checking for dlfcn.h... yes
  [libhomfly-1.03]   [spkg-install] checking for objdir... .libs
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 supports -fno-rtti -fno-exceptions... yes
  [libhomfly-1.03]   [spkg-install] checking for gcc -std=gnu23 option to produce PIC... -fno-common -DPIC
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 PIC flag -fno-common -DPIC works... yes
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 static flag -static works... no
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 supports -c -o file.o... yes
  [libhomfly-1.03]   [spkg-install] checking if gcc -std=gnu23 supports -c -o file.o... (cached) yes
  [libhomfly-1.03]   [spkg-install] checking whether the gcc -std=gnu23 linker (/Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
  [libhomfly-1.03]   [spkg-install] checking dynamic linker characteristics... darwin24.6.0 dyld
  [libhomfly-1.03]   [spkg-install] checking how to hardcode library paths into programs... immediate
  [libhomfly-1.03]   [spkg-install] checking whether stripping libraries is possible... yes
  [libhomfly-1.03]   [spkg-install] checking if libtool supports shared libraries... yes
  [libhomfly-1.03]   [spkg-install] checking whether to build shared libraries... yes
  [libhomfly-1.03]   [spkg-install] checking whether to build static libraries... no
  [libhomfly-1.03]   [spkg-install] checking that generated files are newer than configure... done
  [libhomfly-1.03]   [spkg-install] configure: creating ./config.status
  [libhomfly-1.03]   [spkg-install] config.status: creating Makefile
  [libhomfly-1.03]   [spkg-install] config.status: creating lib/Makefile
  [libhomfly-1.03]   [spkg-install] config.status: creating test/Makefile
  [libhomfly-1.03]   [spkg-install] config.status: creating libhomfly.pc
  [libhomfly-1.03]   [spkg-install] config.status: executing depfiles commands
  [libhomfly-1.03]   [spkg-install] config.status: executing libtool commands
  [libhomfly-1.03]   [spkg-install] configure: WARNING: unrecognized options: --disable-maintainer-mode
  [libhomfly-1.03]   [spkg-install] Building libhomfly-1.03
  [libhomfly-1.03]   [spkg-install] Making all in lib
  [libhomfly-1.03]   [spkg-install] /bin/bash ../libtool  --tag=CC   --mode=compile gcc -std=gnu23 -DPACKAGE_NAME=\"libhomfly\" -DPACKAGE_TARNAME=\"libhomfly\" -DPACKAGE_VERSION=\"1.03\" -DPACKAGE_STRING=\"libhomfly\ 1.03\" -DPACKAGE_BUGREPORT=\"mmarco@unizar.es\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libhomfly\" -DVERSION=\"1.03\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.     -g -O2 -c -o bound.lo bound.c
  [libhomfly-1.03]   [spkg-install] libtool: compile:  gcc -std=gnu23 -DPACKAGE_NAME=\"libhomfly\" -DPACKAGE_TARNAME=\"libhomfly\" -DPACKAGE_VERSION=\"1.03\" "-DPACKAGE_STRING=\"libhomfly 1.03\"" -DPACKAGE_BUGREPORT=\"mmarco@unizar.es\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libhomfly\" -DVERSION=\"1.03\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -g -O2 -c bound.c  -fno-common -DPIC -o .libs/bound.o
  [libhomfly-1.03]   [spkg-install] bound.c:195:17: error: unknown type name 'list'
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                 ^
  [libhomfly-1.03]   [spkg-install] bound.c:195:23: error: unknown type name 'list2'
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                       ^
  [libhomfly-1.03]   [spkg-install] bound.c:195:30: error: unknown type name 'one'
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                              ^
  [libhomfly-1.03]   [spkg-install] bound.c:195:35: error: unknown type name 'two'
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                                   ^
  [libhomfly-1.03]   [spkg-install] bound.c:195:39: error: expected ';' after top level declarator
  [libhomfly-1.03]   [spkg-install]   195 | void b_one_pair(list, list2, one, two)
  [libhomfly-1.03]   [spkg-install]       |                                       ^
  [libhomfly-1.03]   [spkg-install]       |                                       ;
  [libhomfly-1.03]   [spkg-install] bound.c:196:8: error: redefinition of 'list' with a different type: 'word *' (aka 'int *') vs 'word[26]' (aka 'int[26]')
  [libhomfly-1.03]   [spkg-install]   196 | word  *list;    /* list of original inputs/outputs, modified by this routine */
  [libhomfly-1.03]   [spkg-install]       |        ^
  [libhomfly-1.03]   [spkg-install] bound.c:24:6: note: previous definition is here
  [libhomfly-1.03]   [spkg-install]    24 | word list[BIGWEAVE];              /* description of first new weave */
  [libhomfly-1.03]   [spkg-install]       |      ^
  [libhomfly-1.03]   [spkg-install] bound.c:197:8: error: redefinition of 'list2' with a different type: 'word *' (aka 'int *') vs 'word[26]' (aka 'int[26]')
  [libhomfly-1.03]   [spkg-install]   197 | word  *list2;                      /* inputs/outputs of the second new weave */
  [libhomfly-1.03]   [spkg-install]       |        ^
  [libhomfly-1.03]   [spkg-install] bound.c:25:6: note: previous definition is here
  [libhomfly-1.03]   [spkg-install]    25 | word list2[BIGWEAVE];           /* description of second, if needed */
  [libhomfly-1.03]   [spkg-install]       |      ^
  [libhomfly-1.03]   [spkg-install] bound.c:200:1: error: expected identifier or '('
  [libhomfly-1.03]   [spkg-install]   200 | {
  [libhomfly-1.03]   [spkg-install]       | ^
  [libhomfly-1.03]   [spkg-install] 8 errors generated.
  [libhomfly-1.03]   [spkg-install] make[6]: *** [bound.lo] Error 1
  [libhomfly-1.03]   [spkg-install] make[5]: *** [all-recursive] Error 1
  [libhomfly-1.03]   [spkg-install] ********************************************************************************
  [libhomfly-1.03]   [spkg-install] Error building libhomfly-1.03
  [libhomfly-1.03]   [spkg-install] ********************************************************************************
  [libhomfly-1.03]   ::endgroup::
  [libhomfly-1.03]   ************************************************************************
  [libhomfly-1.03]   Error installing package libhomfly-1.03

@cxzhong cxzhong requested a review from dimpase March 27, 2026 07:31
@cxzhong
Copy link
Copy Markdown
Contributor Author

cxzhong commented Mar 27, 2026

@dimpase Now I have added dependency

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Mar 27, 2026

please add such a dependency to all the other pari_*, except of course pari_seadata_small itself

Copy link
Copy Markdown
Member

@dimpase dimpase left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see the last comment

@vbraun vbraun merged commit 4cfecc3 into sagemath:develop Apr 8, 2026
27 of 36 checks passed
@cxzhong cxzhong deleted the fix-race-condition branch April 9, 2026 04:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c: build p: CI fix merged before running CI tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants