sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.45k stars 481 forks source link

Cygwin: Fix cliquer, giac, meataxe, rw, libbraiding to build shared libraries, using `AM_LDFLAGS=-no-undefined` #29152

Closed embray closed 3 years ago

embray commented 4 years ago

Follow-up from #30396, where libtool's fallback to static library build for giac caused linker errors while building sagelib.

This is fixed by passing -no-undefined to the libtool linking flags, by setting AM_LDFLAGS=-no-undefined.

Affected packages can be found as follows:

$ grep "undefined symbols not allowed" logs/pkgs/*
cliquer-1.21.p4.log:libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries
giac-1.5.0.87p0.log:libtool: warning: undefined symbols not allowed in x86_64-pc-cygwin shared libraries; building static only
libbraiding-1.0.p0.log:libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only
rw-0.7.p0.log:libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries
singular-4.1.1p2.p0.log:libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only

In singular, only the gitfan.la library (module) is affected:

Making all in gitfan
...
/usr/bin/bash ../../../libtool  --tag=CXX   --mode=link g++ -std=gnu++11  -O2 -g  -pipe -fno-common -g0 -O3 -Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fno-threadsafe-statics -fno-enforce-eh-specs -fconserve-space -funroll-loops -fno-delete-null-pointer-checks -fno-rtti -module -export-dynamic -avoid-version -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup -L/cygdrive/d/a/sage/sage/local/lib -Wl,-rpath,/cygdrive/d/a/sage/sage/local/lib  -pipe -fno-common -g0 -O3 -Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fconserve-space -funroll-loops -fno-delete-null-pointer-checks  -Wl,-Bdynamic -o gitfan.la -rpath /cygdrive/d/a/sage/sage/local/libexec/singular/MOD gitfan_la-gitfan.lo  -lreadline -lncurses -lmpfr -lrt
libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only
libtool: link: ar cru .libs/gitfan.a  gitfan_la-gitfan.o
libtool: link: ranlib .libs/gitfan.a
libtool: link: ( cd ".libs" && rm -f "gitfan.la" && ln -s "../gitfan.la" "gitfan.la" )

The issue also affects the optional package meataxe.

[meataxe-1.0.p0] /usr/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2  -L/opt/sagemath-9.0/local/lib -Wl,-rpath,/opt/sagemath-9.0/local/lib  -o libmtx.la -rpath /opt/sagemath-9.0/local/lib args.lo berlekmp.lo bsand.lo bscore.lo bsdup.lo bsissub.lo bsmatch.lo bsminus.lo bsop.lo bsor.lo bsprint.lo bsread.lo bswrite.lo cfinfo.lo charpol.lo chbasis.lo error.lo ffio.lo fpcore.lo fpdup.lo fpmul.lo fpmul2.lo fpprint.lo gcd.lo genseed.lo grmaprow.lo grmatcore.lo grtable.lo homcomp.lo imatcore.lo imatread.lo imatwrite.lo init.lo intio.lo issub.lo isisom.lo kernel-0.lo ldiag.lo maddmul.lo mat2vec.lo matadd.lo matclean.lo matcmp.lo maketabF.lo matcopy.lo matcore.lo matcut.lo matdup.lo matech.lo matid.lo matins.lo matinv.lo matmul.lo matnull.lo matorder.lo matpivot.lo matprint.lo matpwr.lo matread.lo mattr.lo mattrace.lo matwrite.lo message.lo mfcore.lo mfread.lo mfreadlong.lo mfwrite.lo mfwritelong.lo minpol.lo mkendo.lo mmulscal.lo mraddgen.lo mrcore.lo mrread.lo mrtranspose.lo mrwrite.lo msclean.lo mscore.lo mtensor.lo mtxobj.lo os.lo permcmp.lo permcore.lo permdup.lo perminv.lo permmul.lo permorder.lo permprint.lo permpwr.lo permread.lo permwrite.lo poladd.lo polcmp.lo polcore.lo polderive.lo poldiv.lo poldup.lo polgcd.lo polmul.lo polprint.lo polread.lo polwrite.lo quotient.lo random.lo rdcfgen.lo saction.lo setcore.lo setinsert.lo settest.lo spinup.lo spinup2.lo split.lo stabpwr.lo stfcore.lo stfread.lo stfwrite.lo string.lo sumint.lo temap.lo tkinfo.lo vec2mat.lo wgen.lo window.lo zcleanrow.lo zcmprow.lo zgap.lo zpermrow.lo zzz2.lo
[meataxe-1.0.p0] libtool:   error: can't build x86_64-unknown-cygwin shared library unless -no-undefined is specified

This is a common issue especially when using libtool to link Windows DLLs and should hopefully be straightforward to fix.

See also:

Depends on #31064

Upstream: Reported upstream. No feedback yet.

CC: @simon-king-jena @miguelmarco @dimpase @orlitzky @antonio-rojas @kiwifb @slel @jhpalmieri @vbraun

Component: porting: Cygwin

Author: Matthias Koeppe, Miguel Marco, Simon King

Branch/Commit: 6b6ee5c

Reviewer: Matthias Koeppe, Dima Pasechnik

Issue created by migration from https://trac.sagemath.org/ticket/29152

mkoeppe commented 4 years ago
comment:2

The failure can be seen at https://github.com/mkoeppe/sage/runs/641394565

mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -1,4 +1,19 @@
-The error occurs when linking:
+Follow-up from #30163, where libtool's fallback to static library build for `giac` caused linker errors while building sagelib.
+
+This is fixed by passing `-no-undefined` to the libtool linking flags, by setting `AM_LDFLAGS=-no-undefined`.
+
+Affected packages can be found as follows:
+
+```
+$ grep "undefined symbols not allowed" logs/pkgs/*
+cliquer-1.21.p4.log:libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries
+giac-1.5.0.87p0.log:libtool: warning: undefined symbols not allowed in x86_64-pc-cygwin shared libraries; building static only
+libbraiding-1.0.p0.log:libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only
+rw-0.7.p0.log:libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries
+singular-4.1.1p2.p0.log:libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only
+```
+
+It also affects the optional package `meataxe`.

[meataxe-1.0.p0] /usr/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L/opt/sagemath-9.0/local/lib -Wl,-rpath,/opt/sagemath-9.0/local/lib -o libmtx.la -rpath /opt/sagemath-9.0/local/lib args.lo berlekmp.lo bsand.lo bscore.lo bsdup.lo bsissub.lo bsmatch.lo bsminus.lo bsop.lo bsor.lo bsprint.lo bsread.lo bswrite.lo cfinfo.lo charpol.lo chbasis.lo error.lo ffio.lo fpcore.lo fpdup.lo fpmul.lo fpmul2.lo fpprint.lo gcd.lo genseed.lo grmaprow.lo grmatcore.lo grtable.lo homcomp.lo imatcore.lo imatread.lo imatwrite.lo init.lo intio.lo issub.lo isisom.lo kernel-0.lo ldiag.lo maddmul.lo mat2vec.lo matadd.lo matclean.lo matcmp.lo maketabF.lo matcopy.lo matcore.lo matcut.lo matdup.lo matech.lo matid.lo matins.lo matinv.lo matmul.lo matnull.lo matorder.lo matpivot.lo matprint.lo matpwr.lo matread.lo mattr.lo mattrace.lo matwrite.lo message.lo mfcore.lo mfread.lo mfreadlong.lo mfwrite.lo mfwritelong.lo minpol.lo mkendo.lo mmulscal.lo mraddgen.lo mrcore.lo mrread.lo mrtranspose.lo mrwrite.lo msclean.lo mscore.lo mtensor.lo mtxobj.lo os.lo permcmp.lo permcore.lo permdup.lo perminv.lo permmul.lo permorder.lo permprint.lo permpwr.lo permread.lo permwrite.lo poladd.lo polcmp.lo polcore.lo polderive.lo poldiv.lo poldup.lo polgcd.lo polmul.lo polprint.lo polread.lo polwrite.lo quotient.lo random.lo rdcfgen.lo saction.lo setcore.lo setinsert.lo settest.lo spinup.lo spinup2.lo split.lo stabpwr.lo stfcore.lo stfread.lo stfwrite.lo string.lo sumint.lo temap.lo tkinfo.lo vec2mat.lo wgen.lo window.lo zcleanrow.lo zcmprow.lo zgap.lo zpermrow.lo zzz2.lo @@ -6,3 +21,5 @@


 This is a common issue especially when using libtool to link Windows DLLs and should hopefully be straightforward to fix.
+
+
mkoeppe commented 4 years ago
comment:5

Cc'ing mmarco re libbraiding

mkoeppe commented 4 years ago
comment:6

cc'ing dimpase re cliquer, also reported at https://github.com/dimpase/autocliquer/issues/4

mkoeppe commented 4 years ago

Upstream: Reported upstream. No feedback yet.

mkoeppe commented 4 years ago
comment:7

Upstream link in build/pkgs/rw/SPKG.rst no longer works

mkoeppe commented 4 years ago
comment:8

Cc'ing gentoo, arch people to see if new rw upstream is known

antonio-rojas commented 4 years ago
comment:10

I'm getting it from https://sourceforge.net/projects/rankwidth/, but I don't know if there's anybody reading tickets there (there are none filed so far)

kiwifb commented 4 years ago
comment:11

Replying to @antonio-rojas:

I'm getting it from https://sourceforge.net/projects/rankwidth/, but I don't know if there's anybody reading tickets there (there are none filed so far)

Same here in Gentoo https://packages.gentoo.org/packages/sci-mathematics/rw

orlitzky commented 4 years ago
comment:12

What's wrong with rw upstream? The program is more or less "complete," so I wouldn't expect much activity. Last time (a few years ago), we just emailed the guy to ask about contributing an autotools build system.

mkoeppe commented 4 years ago

Branch: u/mkoeppe/cygwinmake_sure_all_packages_build_shared_librariesusing__am_ldflags__noundefined

mkoeppe commented 4 years ago

Commit: 45a4167

mkoeppe commented 4 years ago
comment:14

Replying to @orlitzky:

What's wrong with rw upstream?

See ticket description


New commits:

45a4167build/pkgs/rw/SPKG.rst: Update link to upstream project
miguelmarco commented 4 years ago
comment:15

I created a new release for libbraiding:

https://github.com/miguelmarco/libbraiding/releases/tag/1.1

Should I also update the sage package?

IIRC, there is a new way to upload the tarball. Isn't it?

mkoeppe commented 4 years ago
comment:16

Replying to @miguelmarco:

I created a new release for libbraiding:

https://github.com/miguelmarco/libbraiding/releases/tag/1.1

Thanks a lot!

Should I also update the sage package?

Yes please

IIRC, there is a new way to upload the tarball. Isn't it?

No need to upload, but please add upstream_url as explained in https://wiki.sagemath.org/ReleaseTours/sage-9.1#For_developers-1

miguelmarco commented 4 years ago

Changed branch from u/mkoeppe/cygwinmake_sure_all_packages_build_shared_librariesusing__am_ldflags__noundefined to u/mmarco/cygwinmake_sure_all_packages_build_shared_librariesusing__am_ldflags__noundefined

mkoeppe commented 4 years ago

Changed commit from 45a4167 to 44839c7

mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -22,4 +22,6 @@

 This is a common issue especially when using libtool to link Windows DLLs and should hopefully be straightforward to fix.

+See also:
+- #30271 `nauty`: Switch to autotoolized fork so that shared libraries can be built
mkoeppe commented 4 years ago

New commits:

44839c7libbraiding version bump
mkoeppe commented 4 years ago

Author: Matthias Koeppe, Miguel Marco

mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -1,4 +1,4 @@
-Follow-up from #30163, where libtool's fallback to static library build for `giac` caused linker errors while building sagelib.
+Follow-up from #30396, where libtool's fallback to static library build for `giac` caused linker errors while building sagelib.

 This is fixed by passing `-no-undefined` to the libtool linking flags, by setting `AM_LDFLAGS=-no-undefined`.
mkoeppe commented 4 years ago

Changed branch from u/mmarco/cygwinmake_sure_all_packages_build_shared_librariesusing__am_ldflags__noundefined to u/mkoeppe/cygwinmake_sure_all_packages_build_shared_librariesusing__am_ldflags__noundefined

mkoeppe commented 4 years ago

Changed commit from 44839c7 to b2c0b15

mkoeppe commented 4 years ago
comment:21

Fix for meataxe at https://github.com/simon-king-jena/SharedMeatAxe/pull/1


New commits:

b2c0b15build/pkgs/meataxe/distros: Add fedora.txt
mkoeppe commented 4 years ago
comment:22

Replying to @mkoeppe:

cc'ing dimpase re cliquer, also reported at https://github.com/dimpase/autocliquer/issues/4

PR https://github.com/dimpase/autocliquer/pull/5

mkoeppe commented 4 years ago
comment:23

PR for rw: https://sourceforge.net/p/rankwidth/tickets/1/

mkoeppe commented 4 years ago

Description changed:

--- 
+++ 
@@ -13,7 +13,20 @@
 singular-4.1.1p2.p0.log:libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only

-It also affects the optional package meataxe. +In singular, only the gitfan.la library (module) is affected: + + +Making all in gitfan +... +/usr/bin/bash ../../../libtool --tag=CXX --mode=link g++ -std=gnu++11 -O2 -g -pipe -fno-common -g0 -O3 -Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fno-threadsafe-statics -fno-enforce-eh-specs -fconserve-space -funroll-loops -fno-delete-null-pointer-checks -fno-rtti -module -export-dynamic -avoid-version -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup -L/cygdrive/d/a/sage/sage/local/lib -Wl,-rpath,/cygdrive/d/a/sage/sage/local/lib -pipe -fno-common -g0 -O3 -Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fconserve-space -funroll-loops -fno-delete-null-pointer-checks -Wl,-Bdynamic -o gitfan.la -rpath /cygdrive/d/a/sage/sage/local/libexec/singular/MOD gitfan_la-gitfan.lo -lreadline -lncurses -lmpfr -lrt +libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only +libtool: link: ar cru .libs/gitfan.a gitfan_la-gitfan.o +libtool: link: ranlib .libs/gitfan.a +libtool: link: ( cd ".libs" && rm -f "gitfan.la" && ln -s "../gitfan.la" "gitfan.la" ) + + + +The issue also affects the optional package meataxe.

 [meataxe-1.0.p0] /usr/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2  -L/opt/sagemath-9.0/local/lib -Wl,-rpath,/opt/sagemath-9.0/local/lib  -o libmtx.la -rpath /opt/sagemath-9.0/local/lib args.lo berlekmp.lo bsand.lo bscore.lo bsdup.lo bsissub.lo bsmatch.lo bsminus.lo bsop.lo bsor.lo bsprint.lo bsread.lo bswrite.lo cfinfo.lo charpol.lo chbasis.lo error.lo ffio.lo fpcore.lo fpdup.lo fpmul.lo fpmul2.lo fpprint.lo gcd.lo genseed.lo grmaprow.lo grmatcore.lo grtable.lo homcomp.lo imatcore.lo imatread.lo imatwrite.lo init.lo intio.lo issub.lo isisom.lo kernel-0.lo ldiag.lo maddmul.lo mat2vec.lo matadd.lo matclean.lo matcmp.lo maketabF.lo matcopy.lo matcore.lo matcut.lo matdup.lo matech.lo matid.lo matins.lo matinv.lo matmul.lo matnull.lo matorder.lo matpivot.lo matprint.lo matpwr.lo matread.lo mattr.lo mattrace.lo matwrite.lo message.lo mfcore.lo mfread.lo mfreadlong.lo mfwrite.lo mfwritelong.lo minpol.lo mkendo.lo mmulscal.lo mraddgen.lo mrcore.lo mrread.lo mrtranspose.lo mrwrite.lo msclean.lo mscore.lo mtensor.lo mtxobj.lo os.lo permcmp.lo permcore.lo permdup.lo perminv.lo permmul.lo permorder.lo permprint.lo permpwr.lo permread.lo permwrite.lo poladd.lo polcmp.lo polcore.lo polderive.lo poldiv.lo poldup.lo polgcd.lo polmul.lo polprint.lo polread.lo polwrite.lo quotient.lo random.lo rdcfgen.lo saction.lo setcore.lo setinsert.lo settest.lo spinup.lo spinup2.lo split.lo stabpwr.lo stfcore.lo stfread.lo stfwrite.lo string.lo sumint.lo temap.lo tkinfo.lo vec2mat.lo wgen.lo window.lo zcleanrow.lo zcmprow.lo zgap.lo zpermrow.lo zzz2.lo
mkoeppe commented 4 years ago
comment:25

Looks like the singular gitfan issue may be fixed by upstream commit 2617fca625d047a0b9890e6ffae1c5f8fe755aad

orlitzky commented 4 years ago

Description changed:

--- 
+++ 
@@ -13,20 +13,7 @@
 singular-4.1.1p2.p0.log:libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only

-In singular, only the gitfan.la library (module) is affected:

- -Making all in gitfan -... -/usr/bin/bash ../../../libtool --tag=CXX --mode=link g++ -std=gnu++11 -O2 -g -pipe -fno-common -g0 -O3 -Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fno-threadsafe-statics -fno-enforce-eh-specs -fconserve-space -funroll-loops -fno-delete-null-pointer-checks -fno-rtti -module -export-dynamic -avoid-version -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup -L/cygdrive/d/a/sage/sage/local/lib -Wl,-rpath,/cygdrive/d/a/sage/sage/local/lib -pipe -fno-common -g0 -O3 -Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fconserve-space -funroll-loops -fno-delete-null-pointer-checks -Wl,-Bdynamic -o gitfan.la -rpath /cygdrive/d/a/sage/sage/local/libexec/singular/MOD gitfan_la-gitfan.lo -lreadline -lncurses -lmpfr -lrt -libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only -libtool: link: ar cru .libs/gitfan.a gitfan_la-gitfan.o -libtool: link: ranlib .libs/gitfan.a -libtool: link: ( cd ".libs" && rm -f "gitfan.la" && ln -s "../gitfan.la" "gitfan.la" ) -

- -The issue also affects the optional package meataxe. +It also affects the optional package meataxe.

 [meataxe-1.0.p0] /usr/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2  -L/opt/sagemath-9.0/local/lib -Wl,-rpath,/opt/sagemath-9.0/local/lib  -o libmtx.la -rpath /opt/sagemath-9.0/local/lib args.lo berlekmp.lo bsand.lo bscore.lo bsdup.lo bsissub.lo bsmatch.lo bsminus.lo bsop.lo bsor.lo bsprint.lo bsread.lo bswrite.lo cfinfo.lo charpol.lo chbasis.lo error.lo ffio.lo fpcore.lo fpdup.lo fpmul.lo fpmul2.lo fpprint.lo gcd.lo genseed.lo grmaprow.lo grmatcore.lo grtable.lo homcomp.lo imatcore.lo imatread.lo imatwrite.lo init.lo intio.lo issub.lo isisom.lo kernel-0.lo ldiag.lo maddmul.lo mat2vec.lo matadd.lo matclean.lo matcmp.lo maketabF.lo matcopy.lo matcore.lo matcut.lo matdup.lo matech.lo matid.lo matins.lo matinv.lo matmul.lo matnull.lo matorder.lo matpivot.lo matprint.lo matpwr.lo matread.lo mattr.lo mattrace.lo matwrite.lo message.lo mfcore.lo mfread.lo mfreadlong.lo mfwrite.lo mfwritelong.lo minpol.lo mkendo.lo mmulscal.lo mraddgen.lo mrcore.lo mrread.lo mrtranspose.lo mrwrite.lo msclean.lo mscore.lo mtensor.lo mtxobj.lo os.lo permcmp.lo permcore.lo permdup.lo perminv.lo permmul.lo permorder.lo permprint.lo permpwr.lo permread.lo permwrite.lo poladd.lo polcmp.lo polcore.lo polderive.lo poldiv.lo poldup.lo polgcd.lo polmul.lo polprint.lo polread.lo polwrite.lo quotient.lo random.lo rdcfgen.lo saction.lo setcore.lo setinsert.lo settest.lo spinup.lo spinup2.lo split.lo stabpwr.lo stfcore.lo stfread.lo stfwrite.lo string.lo sumint.lo temap.lo tkinfo.lo vec2mat.lo wgen.lo window.lo zcleanrow.lo zcmprow.lo zgap.lo zpermrow.lo zzz2.lo
orlitzky commented 4 years ago
comment:26

The -no-undefined is only needed when building a shared library, so the flag can be appended in e.g.

libfoo_la_LDFLAGS = -no-undefined

rather than the global

AM_LDFLAGS=-no-undefined

that will affect all link operations (including executables). It probably doesn't hurt much, but I remember vaguely that --as-needed was nicer than --no-undefined if you were going to apply it globally.

I also think most projects should have LT_INIT([disable-static]) in configure.ac these days, to disable the static libraries by default. They can still be enabled with --enable-static, but for most people they're a waste of time/space.

orlitzky commented 4 years ago
comment:27

Putting back the description I clobbered...

orlitzky commented 4 years ago

Description changed:

--- 
+++ 
@@ -13,7 +13,19 @@
 singular-4.1.1p2.p0.log:libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only

-It also affects the optional package meataxe. +In singular, only the gitfan.la library (module) is affected: + + +Making all in gitfan +... +/usr/bin/bash ../../../libtool --tag=CXX --mode=link g++ -std=gnu++11 -O2 -g -pipe -fno-common -g0 -O3 -Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fno-threadsafe-statics -fno-enforce-eh-specs -fconserve-space -funroll-loops -fno-delete-null-pointer-checks -fno-rtti -module -export-dynamic -avoid-version -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup -L/cygdrive/d/a/sage/sage/local/lib -Wl,-rpath,/cygdrive/d/a/sage/sage/local/lib -pipe -fno-common -g0 -O3 -Wno-unused-function -Wno-trigraphs -Wno-unused-parameter -Wunknown-pragmas -Wno-unused-variable -fomit-frame-pointer -fwrapv -fvisibility=default -finline-functions -fno-exceptions -fconserve-space -funroll-loops -fno-delete-null-pointer-checks -Wl,-Bdynamic -o gitfan.la -rpath /cygdrive/d/a/sage/sage/local/libexec/singular/MOD gitfan_la-gitfan.lo -lreadline -lncurses -lmpfr -lrt +libtool: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries; building static only +libtool: link: ar cru .libs/gitfan.a gitfan_la-gitfan.o +libtool: link: ranlib .libs/gitfan.a +libtool: link: ( cd ".libs" && rm -f "gitfan.la" && ln -s "../gitfan.la" "gitfan.la" ) + + +The issue also affects the optional package meataxe.

 [meataxe-1.0.p0] /usr/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2  -L/opt/sagemath-9.0/local/lib -Wl,-rpath,/opt/sagemath-9.0/local/lib  -o libmtx.la -rpath /opt/sagemath-9.0/local/lib args.lo berlekmp.lo bsand.lo bscore.lo bsdup.lo bsissub.lo bsmatch.lo bsminus.lo bsop.lo bsor.lo bsprint.lo bsread.lo bswrite.lo cfinfo.lo charpol.lo chbasis.lo error.lo ffio.lo fpcore.lo fpdup.lo fpmul.lo fpmul2.lo fpprint.lo gcd.lo genseed.lo grmaprow.lo grmatcore.lo grtable.lo homcomp.lo imatcore.lo imatread.lo imatwrite.lo init.lo intio.lo issub.lo isisom.lo kernel-0.lo ldiag.lo maddmul.lo mat2vec.lo matadd.lo matclean.lo matcmp.lo maketabF.lo matcopy.lo matcore.lo matcut.lo matdup.lo matech.lo matid.lo matins.lo matinv.lo matmul.lo matnull.lo matorder.lo matpivot.lo matprint.lo matpwr.lo matread.lo mattr.lo mattrace.lo matwrite.lo message.lo mfcore.lo mfread.lo mfreadlong.lo mfwrite.lo mfwritelong.lo minpol.lo mkendo.lo mmulscal.lo mraddgen.lo mrcore.lo mrread.lo mrtranspose.lo mrwrite.lo msclean.lo mscore.lo mtensor.lo mtxobj.lo os.lo permcmp.lo permcore.lo permdup.lo perminv.lo permmul.lo permorder.lo permprint.lo permpwr.lo permread.lo permwrite.lo poladd.lo polcmp.lo polcore.lo polderive.lo poldiv.lo poldup.lo polgcd.lo polmul.lo polprint.lo polread.lo polwrite.lo quotient.lo random.lo rdcfgen.lo saction.lo setcore.lo setinsert.lo settest.lo spinup.lo spinup2.lo split.lo stabpwr.lo stfcore.lo stfread.lo stfwrite.lo string.lo sumint.lo temap.lo tkinfo.lo vec2mat.lo wgen.lo window.lo zcleanrow.lo zcmprow.lo zgap.lo zpermrow.lo zzz2.lo
mkoeppe commented 4 years ago
comment:28

Replying to @orlitzky:

The -no-undefined is only needed when building a shared library, so the flag can be appended in e.g.

libfoo_la_LDFLAGS = -no-undefined

rather than the global

AM_LDFLAGS=-no-undefined

that will affect all link operations

I agree, that would be a little bit cleaner. But I don't think it's worth going back for this

mkoeppe commented 4 years ago
comment:29

Replying to @orlitzky:

I also think most projects should have LT_INIT([disable-static]) in configure.ac these days, to disable the static libraries by default. They can still be enabled with --enable-static, but for most people they're a waste of time/space.

I agree, but I want to keep the upstream patches minimal. We have #28890 for the task of sending --disable-static to all our packages

dimpase commented 4 years ago
comment:30

Replying to @mkoeppe:

cc'ing dimpase re cliquer, also reported at https://github.com/dimpase/autocliquer/issues/4

OK, done and dusted, thanks for the PR, see https://github.com/dimpase/autocliquer/releases/download/v1.22/cliquer-1.22.tar.gz

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 4 years ago

Changed commit from b2c0b15 to 1e94f7a

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 4 years ago

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

1e94f7abuild/pkgs/cliquer: Update to 1.22
dimpase commented 4 years ago
comment:32

could you also add

--- a/build/pkgs/cliquer/SPKG.rst
+++ b/build/pkgs/cliquer/SPKG.rst
@@ -5,8 +5,8 @@ Description
 -----------

 Cliquer is a set of C routines for finding cliques in an arbitrary
-weighted graph. It uses an exact branch-and-bound algorithm recently
-developed by Patr Ostergard.
+weighted graph. It uses an exact branch-and-bound algorithm
+developed by Patric Östergård.

 License
 -------
@@ -28,4 +28,5 @@ Dependencies
 Patches
 -------

--  autotoolized - see https://github.com/dimpase/autocliquer
+-  minor config updates (v1.22)
+-  autotoolized - see https://github.com/dimpase/autocliquer (v1.21)
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 4 years ago

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

f2632ebbuild/pkgs/cliquer/SPKG.rst: Update
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 4 years ago

Changed commit from 1e94f7a to f2632eb

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 4 years ago

Changed commit from f2632eb to 9c1ee37

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 4 years ago

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

9c1ee37build/pkgs/rw: Update to 0.9
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 4 years ago

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

e662986Merge tag '9.2.beta14' into t/29152/cygwin__make_sure_all_packages_build_shared_libraries__using__am_ldflags__no_undefined_
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 4 years ago

Changed commit from 9c1ee37 to e662986

simon-king-jena commented 4 years ago
comment:37

I am about to release a new minor version of SharedMeatAxe based on Matthias' suggestions, and my plan was to upgrade it in Sage now. But since it is "needs review" already: Did Matthias did the meataxe upgrade in Sage already?

simon-king-jena commented 4 years ago

Work Issues: Upgrade shared_meataxe to v1.0.1

simon-king-jena commented 4 years ago
comment:38

Aparently the upgrade of meataxe hasn't been done yet. So, it should be "needs work".

simon-king-jena commented 4 years ago

Changed branch from u/mkoeppe/cygwinmake_sure_all_packages_build_shared_librariesusing__am_ldflags__noundefined to u/SimonKing/cygwinmake_sure_all_packages_build_shared_librariesusing__am_ldflags__noundefined

simon-king-jena commented 4 years ago

Changed work issues from Upgrade shared_meataxe to v1.0.1 to none

simon-king-jena commented 4 years ago

Changed commit from e662986 to 54c2584