Opened 11 years ago
Closed 10 years ago
#12110 closed defect (fixed)
[ARM] Singular 3-1-3-3.p1 doesn't compile as-is
Reported by: | Snark | Owned by: | GeorgSWeber |
---|---|---|---|
Priority: | major | Milestone: | sage-4.8 |
Component: | build | Keywords: | |
Cc: | Merged in: | sage-4.8.rc0 | |
Authors: | Julien Puydt | Reviewers: | Dmitrii Pasechnik |
Report Upstream: | Fixed upstream, in a later stable release. | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
The singular package in 4.8.alpha doesn't compile because it lacks a simple switch in a compilation line.
The reason is that 3-1-3-3 still uses an organisation where you either have a known platform and hence get nice switches, or you're not -- and you get crap.
In fact, sage's spkg already adds forcefully a few "-fPIC" here and there that make things better.
The attached patch adds a "-shared" switch to LIBSINGULAR_FLAGS -- but it does so before that variable is overwritten by the good flags if the platform is known. That means it unbreaks my platform but doesn't break the others.
I have an upstream ticket about singular on ARM here : http://www.singular.uni-kl.de:8002/trac/ticket/299
release manager: the working spkg (just a copy of Snark's, at a more convenient place) can be found here: spkg@boxen
Attachments (1)
Change History (14)
comment:1 in reply to: ↑ description Changed 10 years ago by
- Status changed from new to needs_info
comment:2 follow-up: ↓ 3 Changed 10 years ago by
I didn't need to patch the non-debug Makefile, so I don't see the point of patching it : upstream has so much better in store for the future that there's little incentive to make more than what is necessary.
I'll provide a newer patch when I'll have seen the failure in 4.8alpha5.
comment:3 in reply to: ↑ 2 Changed 10 years ago by
Replying to Snark:
I'll provide a newer patch when I'll have seen the failure in 4.8alpha5.
as I mentioned, your patch needs to be rebased, anyway, as Singular spkg has been updated in the meantime. It might have become platform-specific, too.
comment:4 Changed 10 years ago by
Ok, here is a rebased patch, but it won't make singular compile : there are now unresolved symbols (omalloc symbols) everywhere... I'll investigate.
comment:5 Changed 10 years ago by
Hmmmm... it tries to use omalloc_ndebug, which doesn't have the right symbols:
jpuydt@hecke:~/sage-4.8.alpha5/local/lib$ nm libomalloc.a |grep omSetCustomOfTrackAddr 000006f8 T omSetCustomOfTrackAddr jpuydt@hecke:~/sage-4.8.alpha5/local/lib$ nm libomalloc_ndebug.a |grep omSetCustomOfTrackAddr jpuydt@hecke:~/sage-4.8.alpha5/local/lib$
and:
jpuydt@hecke:~/sage-4.8.alpha5/local/lib$ nm libomalloc.a |grep _omDebugAlloc 00000000 t __omDebugAlloc 000003cc T _omDebugAlloc jpuydt@hecke:~/sage-4.8.alpha5/local/lib$ nm libomalloc_ndebug.a |grep _omDebugAlloc jpuydt@hecke:~/sage-4.8.alpha5/local/lib$
Sigh. Here is how omDebug.c (where those are defined) is compiled for libomalloc.a:
gcc -O2 -g -fPIC -I. -I.. -I. -I/home/jpuydt/sage-4.8.alpha5/local -I.. -DHAVE_CONFIG_H -c omDebug.c
and here is how it is compiled for libomalloc_ndebug.a:
gcc -O2 -g -fPIC -I. -I.. -I. -I/home/jpuydt/sage-4.8.alpha5/local -I.. -DHAVE_CONFIG_H -DOM_NDEBUG -c omDebug.c -o omDebug.o_ndebug
and of course, almost all of omDebug.c is in a #ifndef OM_NDEBUG. That explains the break, but doesn't explain why it would compile on other platforms and not here!
comment:6 Changed 10 years ago by
Ok, I found the problem : now there is a kernel.Makefile.in.debug.patch, which shouldn't be applied unconditionally!
comment:7 follow-up: ↓ 8 Changed 10 years ago by
The new patch adds a new Singular.Makefile.in.shared.patch file to patches/, and applies it unconditionally. [Aside: in my previous comment, s/kernel/Singular/]
It compiles on my ARM box.
comment:8 in reply to: ↑ 7 Changed 10 years ago by
Replying to Snark:
The new patch adds a new Singular.Makefile.in.shared.patch file to patches/, and applies it unconditionally. [Aside: in my previous comment, s/kernel/Singular/]
It compiles on my ARM box.
Thanks! With this patch, and the new flint spkg on #10328 provided by William, the build completes. As the system does not have readline-dev installed, the Ubuntu 11.10-specific bug does not materialize. I'm running "make ptest" now.
So the next step would be to make proper spkgs for Singular and for Flint...
comment:9 Changed 10 years ago by
- Status changed from needs_info to needs_review
singular-3-1-3-3.p3.spkg on my provider's big file service.
comment:10 Changed 10 years ago by
New version of the spkg, which should be in a reviewable state (things are checked in, I added informations to SPKG.txt...) here : singular-3-1-3-3.p3.spkg
comment:11 Changed 10 years ago by
- Description modified (diff)
- Report Upstream changed from N/A to Fixed upstream, in a later stable release.
- Status changed from needs_review to positive_review
comment:12 Changed 10 years ago by
- Reviewers set to Dmitrii Pasechnik
comment:13 Changed 10 years ago by
- Merged in set to sage-4.8.rc0
- Resolution set to fixed
- Status changed from positive_review to closed
Replying to Snark:
You have patched Singular.Makefile.in.debug.patch, but don't you also need to patch the non-debug Makefile?
Then, this needs to be rebased for 4.8, as the patch to spkg-install does not apply any more.