[libgcc8] compile failure on i386 on 10.6 Snow

Ken Cunningham ken.cunningham.webuse at gmail.com
Wed Aug 28 15:54:15 UTC 2019


> Bootstrapping 3:
> (5) & (7) :
>     the instructions state +llvm39 ;
>     but shouldn't it be +llwm37 ?!?

The instructions state +llvm50 (I changed them from llvm39 about a week ago, in anticipation of llvm-3.9 being retired)


> (10) :
>     according to your procedure at described above,
>     it shold be clang-5.0 instead of clang-3.9 ?!?
>     somebody noted somewhere that clang-3.9 is drepreceated

It does say to install clang-5.0.


> (11) :
>     in lieu of (12) shouldn't clang-3.4 be removed here ?!?
>     and how about clang-3.7 and the others if clang-(3.9|5.0)
>     has been installed ?!?
> 
clang-3.4 can stay on the list, as it can work if others are blacklilsted.


> And Bill Cole seems to have clang-8.0 running and no clang-3.(7|9)
Yep, I have fixed clang-8.0 for snow leopard. I'll clang -9.0 when it is released (it is delayed right now).

You will be happiest if you still have clang-5.0, clang-3.7, and perhaps clang-3.4 still installed as well, for now, however.

There is a lot of older software that will not build with newer clang versions, like qt4-mac, for example.


> (Why does everything now want ncurses-bootstrap, which doesn't build???)
This is something new. MacPorts is in the process of moving all older intel systems to libc++, which will one day make these instructions redundant.


> 
> And your note about re-building libcxx +emulatedtls isn't mentioned !
I should add that. It's still quite new, and I've been thinking about the best way to do that automatically, but in the meantime, doing it manually would be needed.


> 
> And should the instructions reflect the variants Bill Cole has ?!?

Not sure what those are, but I think the variants listed are pretty good.
> 
> Now, I know that 10.6 - 10.8 is only relevant on _!very!_ old HardWare,
> so : how many of us do actually have such old HW ;-) ???
> 
I'd love to know that. I have a number of older systems that peak out at 10.7, but run best on 10.6.8. We might get some info as the new metrics are implemented. I have no interest in wasting time for nothing.

At this moment, the extremely robust support for older systems is one of the major factors that differentiates MacPorts from homebrew (which has basically no support for them).

> urther notes regarding LibcxxOnOlderSystems :
> 
> (12) :
>     mentions ripping clang-3.4 out ;
>     but isn't it enough to remove it from default_compilers ?!?
>     so that one still has it in case of an emergency ?!?
Yes, I leave it installed. However, important perhaps to know that it's built against libstdc++, so in the old old days, when anything linked against llvm-3.4, it might have a stdlib mismatch. That's why the instructions still say to uninstall it. If it is then reinstalled later, the idea is that it will be built with something like clang-3.7, and against libc++. That is more pure, and Jeremy is a n Apple compiler engineer, and purity is everything in that business.


>     alternatively, can one use eg "port (pkg|dmg) (clang|llvm)-x.y"
>     to store the versions of (clang|llvm) one doesn't use presently ?!?
> 
That, I think, might only result in a mess, but could be done if you're very very careful and you exactly how that is built.


> Bill Cole mentions doing a "port upgrade --force clang-8.0"
> Is it a good idea to do this after having installed a new version of
> clang ?!?
No idea why to do that at this moment.

> OK ! There have been some major changes in a lot of PortFile recently !
> 
Yes, we are preparing for the imminent change of all MacPorts users to default to libc++ on all Intel systems. YEAY!!!! 

> Ive just had to do this :
> 
> #=> port -vN install libcxx
> --->  Computing dependencies for
> libcxx........................................................................
> --->  Dependencies to be installed: clang-3.4 cctools libunwind-headers
> xz-bootstrap gettext-bootstrap libiconv-bootstrap gperf-bootstrap
> ncurses-bootstrap llvm-3.7 libcxx libedit libffi llvm_select zlib
> clang_select ld64 ld64-latest clang-5.0 clang-3.7 libxml2 icu pkgconfig
> xz perl5 perl5.28 db48 gdbm readline python27 bzip2 expat openssl
> python2_select python_select sqlite3 cmake curl curl-ca-bundle libidn2
> autoconf automake libtool libunistring texinfo help2man
> p5.28-locale-gettext libpsl glib2 pcre python37 python3_select
> legacy-support libarchive lz4 lzo2 zstd libuv libomp llvm-5.0 xar
> libmacho-headers libxml2-bootstrap icu-bootstrap pkgconfig-bootstrap
> llvm-3.4 python27-bootstrap

I have not personally let this process play out myself, so I hope it all works out.

I don't see how libcxx can depend on libcxx, and you can't built clang-5.0 without libcxx so I don't see how libcxx can depend on clang-5.0, and ....

But, as I say, I haven't tried it yet.

IF somehow llvm-5.0 is built with clang-3.4, it will be broken when you try to compile anything with it. I think that might happen, as the clang-3.4 blacklist appears to have been stripped outof the llvm-5.0 portfile. But this is all just happening now, and getting sorted out, over the last few days.

You will probably be one of the first end-users to ever try it.


> 
> So, what we have discussed in this thread & what's described on the
> LibcxxOnOlderSystems wiki has now been automated ! :-) :-D

Getting there!

> 
> As I always say : If you have to do the same thing more than twice, you
> have the basis for a program ;) :-D
> 
> I'll let you know how it turns out when all of this has finished
> installing i a day or two :-D ;-) :-D
> 
> -- 
Please do. I'm very glad you have taken the interest and time to try it out -- that is exactly why we have spent so much time trying to fix it for people like you.

But if something breaks, don't be frustrated. This process is literally one week old, and I don't know if anyone ever tried it on MacPorts 2.5.4, so you are an intrepid explorer in an uncharted wilderness right now...

Best,


Ken





More information about the macports-users mailing list