Opened 8 years ago

Closed 8 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 dimpase)

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)

singular-add-shared-switch.patch (1.3 KB) - added by Snark 8 years ago.
Patch to add -shared as a switch by default on unknown platforms

Download all attachments as: .zip

Change History (14)

comment:1 in reply to: ↑ description Changed 8 years ago by dimpase

  • Status changed from new to needs_info

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.

comment:2 follow-up: Changed 8 years ago by Snark

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 8 years ago by dimpase

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 8 years ago by Snark

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 8 years ago by Snark

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 8 years ago by Snark

Ok, I found the problem : now there is a kernel.Makefile.in.debug.patch, which shouldn't be applied unconditionally!

Changed 8 years ago by Snark

Patch to add -shared as a switch by default on unknown platforms

comment:7 follow-up: Changed 8 years ago by 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.

comment:8 in reply to: ↑ 7 Changed 8 years ago by dimpase

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 8 years ago by Snark

  • 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 8 years ago by Snark

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 8 years ago by dimpase

  • 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 8 years ago by jdemeyer

  • Authors set to Julien Puydt
  • Reviewers set to Dmitrii Pasechnik

comment:13 Changed 8 years ago by jdemeyer

  • Merged in set to sage-4.8.rc0
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.