So on another thread there was talk about whether we could build sage with clang+gfortran on OS X. Well it is not that bad and a little push in the right place would probably get use 95% there.
I couldn’t build sagelib, I didn’t manage to get there. Here are the packages that fail to build with clang in sage 7.4.beta4 on OS X: ratpoints lcalc pynac linbox symmetrica gfan ratpoints: there is an ancient ticket (#12473). Surprisingly it is a C language problem. ratpoints rely on a GNU extension to use nested functions. I tried to untangle the first specimen I encountered before realising that it was quite an amount of work (the nested function sees and uses a number of variables from the “host” function that are in scope like they were global variables, this makes things just insane). lcalc: is no surprise. It uses a number of obsolete features, not sure how long gcc itself will build it. pynac: https://github.com/pynac/pynac/pull/192 https://github.com/pynac/pynac/issues/193 for starters. linbox: https://github.com/linbox-team/linbox/issues/39 more on linbox specifically later. symmetrica: In the first instance a function returning an “int” has return statement with no values. Should be trivial but I didn’t dig too much. gfan: some C++ constructor problem. On most of these switching to gcc/g++ solved the problem expect for linbox which revealed some tricky C++ problems with that approach. linbox uses fflas-ffpack and givaro, themselves having been compiled with clang++. In another post I mentioned that most vendors (clang and GNU in particular) where following a common ABI for C++. The problem is that there is now several versions of the ABI and g++ and clang++ on OS X default on different one. You can get g++ to change to the right ABI but then the linker get confused thinking you mix different architectures. This is probably solvable but show that it would be more sane to compile all C++ libraries that will be included in sage with the same compiler. Stuff called by pexpect doesn’t matter so much, but in the list above that means lcalc, pynac and linbox need to be fixed [ratpoints and symmetrica are C, gfan is used via pexpect]. I was surprised sympow didn’t make it in the list but it did compile. François -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.