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

ppl library problems on Arch Linux, OpenSuse: _ZN23Parma_Polyhedra_Library13have_sse_unitE #11391

Closed
sagetrac-gostrc mannequin opened this issue May 27, 2011 · 21 comments

Comments

@sagetrac-gostrc
Copy link
Mannequin

sagetrac-gostrc mannequin commented May 27, 2011

I am using the sage 4.7 release.
I'm trying to package sage for archlinux, and the x86_64 version compiled fine. But the i686 version of the package failed with the error described here:
http://groups.google.com/group/sage-devel/browse_thread/thread/84b2f4d94d50e735

The complete install.log can be found here:
http://pkgbuild.com/~td123/install.log.gz

The relevant install.log portion (the error message) is:
http://pastie.org/pastes/1980914/text

CC: @sagetrac-aginiewicz

Component: packages: standard

Reviewer: Jeroen Demeyer

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

@sagetrac-gostrc sagetrac-gostrc mannequin added this to the sage-5.10 milestone May 27, 2011
@sagetrac-gostrc sagetrac-gostrc mannequin added c: build labels May 27, 2011
@sagetrac-gostrc
Copy link
Mannequin Author

sagetrac-gostrc mannequin commented May 27, 2011

comment:1

A temporary fix for me before running `make' was to do the following:
mkdir -p spkg/installed
touch spkg/installed/ppl-0.11.2

@sagetrac-gostrc
Copy link
Mannequin Author

sagetrac-gostrc mannequin commented Jan 20, 2012

comment:2

It seems that with sage 4.8, this workaround doesn't work anymore.
I attached the output I get when building on i686 without the above workaround.
(sage.output.i686)

@sagetrac-gostrc
Copy link
Mannequin Author

sagetrac-gostrc mannequin commented Jan 24, 2012

comment:3

Attachment: sage.output.i686.gz

This is what I get when trying to compile with the workaround:

mkdir -p spkg/installed
touch spkg/installed/ppl-0.11.2.p0

Output:

Installing c_lib
scons: `install' is up to date.
Updating Cython code....
Executing 0 commands (using 0 threads)
Time to execute 0 commands: 0.0769848823547 seconds
Finished compiling Cython code (time = 0.446054935455 seconds)
running install
running build
running build_py
running build_ext
building 'sage.libs.ppl' extension
Executing 1 command (using 1 thread)
error: /build/src/sage-4.8/local/include/ppl.hh: No such file or directory
sage: There was an error installing modified sage library code.

make: *** [build] Error 1

attached the full build output as sage.output.i686.workaround.gz

@sagetrac-gostrc
Copy link
Mannequin Author

sagetrac-gostrc mannequin commented Jan 25, 2012

comment:4

Attachment: sage.output.i686.workaround.gz

just rebuilt 4.7.2 and it works, so this was introduced in 4.8 for sure.

@sagetrac-GeorgSWeber
Copy link
Mannequin

sagetrac-GeorgSWeber mannequin commented Feb 5, 2012

comment:5

I think that the following post (for OpenSuse 12.1) mentions exactly the same underlying problem:

http://groups.google.com/group/sage-devel/browse_thread/thread/a7017c8f3b0a16c0

It seems that from Sage 4.8 on, the ppl (Parma Polyhedra Library) got interfaced by the Sage core. So the "workaround" to not build the ppl spkg at all ("touch spkg/installed/ppl-0.11.2.p0") simply won't work for Sage 4.8 and later (since the respective headers are needed)!

As long as the ppl library included in Sage and the ppl library of the host OS do not differ too much (they seem to be "close enough" right now in the known cases Arch Linx, OpenSuse 11.4 - 12.1), one probably could use a different workaround:

a) do build the ppl spkg (in order to get the header files in place)

b) after that (just waiting for the "breakage" might be sufficient), replace the library binary ("libppl.so.9.0.0" or so) under $SAGE_LOCAL/lib/ with a symlink to the host OS'es libppl.

For some "correct" solution, one would either have to update the ppl spkg to install a newer version of ppl, to match the one of the host OS(es) --- somewhat a "moving target" (we might end up with having to provide several different versions of ppl in the spkg).

Or provide the technical foundation so that the libraries brought with Sage do not (i.e. no longer) interfere with libraries on the host OS (the ticket #10572 describes one of several ways to do so).

Cheers,

Georg

@sagetrac-GeorgSWeber sagetrac-GeorgSWeber mannequin changed the title error building sage 4.7: undefined symbol: _ZN23Parma_Polyhedra_Library13have_sse_unitE ppl library problems on Arch Linux, OpenSuse: _ZN23Parma_Polyhedra_Library13have_sse_unitE Feb 5, 2012
@sagetrac-aginiewicz
Copy link
Mannequin

sagetrac-aginiewicz mannequin commented Mar 16, 2012

comment:6

I don't know if this is a known thing, but one of Arch Linux users (going by name Snowball on AUR, the Arch Linux User Repository) posted a working solution for ppl problem on i686, and it is quite a simple change to ppl spkg:

sed -i 's/--enable-interfaces=c++/--enable-interfaces="c++ c"/' ppl-0.11.2.p0/spkg-install

I tested this in i686 VM of Arch Linux and can confirm that with this change to ppl spkg it works (right now Sage 4.8 still builds, but it got past pycrypto where it failed before). Unfortunately right now I don't have time to post an updated spkg, but I decided to let others know about it anyway.

@sagetrac-aginiewicz
Copy link
Mannequin

sagetrac-aginiewicz mannequin commented Mar 16, 2012

comment:7

I finished building 4.8 without any issue on current Arch Linux i686, also found some time so I decided to refresh my knowledge and package new ppl. The spkg with mentioned fix is here: https://github.com/downloads/aginiewicz/spkgs/ppl-0.11.2.p2.spkg - I hope I still remember how to package for Sage.

@jdemeyer
Copy link

comment:9

This is a duplicate of #12672 (which has the same solution for a different problem).

@simon-king-jena
Copy link
Member

comment:10

Replying to @jdemeyer:

This is a duplicate of #12672 (which has the same solution for a different problem).

I think it is not a duplicate. #12672 is about building the C interface of PPL, which is currently not done. Solving build problems on some platforms is an orthogonal problem, IMHO.

@jdemeyer
Copy link

comment:11

Replying to @simon-king-jena:

Replying to @jdemeyer:

This is a duplicate of #12672 (which has the same solution for a different problem).

I think it is not a duplicate. #12672 is about building the C interface of PPL, which is currently not done. Solving build problems on some platforms is an orthogonal problem, IMHO.

As I said, ticket #12672 has the same solution for a different problem.

@simon-king-jena
Copy link
Member

comment:12

Aha, now I see the comment of aginiewicz: "a working solution for ppl problem on i686, and it is quite a simple change to ppl spkg:

sed -i 's/--enable-interfaces=c++/--enable-interfaces="c++ c"/' ppl-0.11.2.p0/spkg-install

So, you are right, it is about building interfaces, in order to achieve something else.

Since #12672 has an spkg (even though it fails on OS X because of missing m4): What shall we do? Close this ticket as a duplicate? Leave both open? Do we need an m4 spkg?

@jdemeyer
Copy link

comment:13

Replying to @simon-king-jena:

Do we need an m4 spkg?

I think we should have an m4 spkg, but most people disagree (there was a mailing list post on this).

@jdemeyer
Copy link

comment:14

Please fill in your real name as Author.

@sagetrac-aginiewicz
Copy link
Mannequin

sagetrac-aginiewicz mannequin commented Jul 31, 2012

Author: Andrzej Giniewicz

@jdemeyer
Copy link

jdemeyer commented Oct 6, 2012

comment:16

Just got another report of this error on the mailing list. We really should fix this.

@simon-king-jena
Copy link
Member

comment:17

Would #12672 work, modulo providing an m4 spkg on OS X?

@sagetrac-aginiewicz
Copy link
Mannequin

sagetrac-aginiewicz mannequin commented Oct 7, 2012

comment:18

The difference between spkg in #12672 and spkg I posted in comment:7 (that contains fix used by Arch Linux package, i.e. is tested in production environment) is only "make install" vs "make install-strip", so I'd say yes - both spkgs fixes this and #12672 - but both would have issues with m4 on OS X.

@jdemeyer
Copy link

comment:19

Replying to @simon-king-jena:

Would #12672 work, modulo providing an m4 spkg on OS X?

Absolutely.

Just got another report of this error on the mailing list. We really should fix this.

@jdemeyer
Copy link

jdemeyer commented Jun 4, 2013

Changed author from Andrzej Giniewicz to none

@jdemeyer
Copy link

jdemeyer commented Jun 4, 2013

Reviewer: Jeroen Demeyer

@jdemeyer
Copy link

jdemeyer commented Jun 4, 2013

comment:21

Fixed by #14232.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants