seems to be a tonne of opportunity to smoke fink

Ken Cunningham ken.cunningham.webuse at gmail.com
Sun Sep 29 03:29:45 UTC 2024


the libcxx port is used currently only 10.5 and 10.6 Intel systems. 

It gives them a system libcxx installed as /usr/lib/libc++.dylib and /usr/lib/libc++abi.dylib that is quite a bit newer than what is installed on 10.7, 10.8, 10.9, or 10.10. I forget about where it comes in -- 10.13 is my best guess.

For any of those systems where libc++ is too old, we use macports-libcxx. It has some warts -- certain things break when using macports-libcxx. But most things work.

Changing the libcxx port to use the libc++ from clang-11/llvm-11 will make it newer, of course, affecting only 10.5 and 10.6 Intel. This will come at the cost of a more complicated bootstrap procedure and quite possibly some incompatible software might be found.

So -- personally I  would leave libcxx alone, probably forever, and let it be as is. 

But there is a discussion to be had about the ups and downs of making that a newer libc++ for 10.5. and 10.6, sure... 

because of the way things work, anything that needs a newer libc++ than what is on 10.7 will still need to force macports-libcxx anyway on 10.5 and 10.6, so ... questionably beneficial.

K




> On Sep 28, 2024, at 6:49 PM, Gagan Sidhu via macports-dev <macports-dev at lists.macports.org> wrote:
> 
> i just wanted to follow up on this a little.
> 
> i noticed that *macports-libcxx* is the ‘good one’ and libcxx is the ‘old one’.
> 
> macports-libcxx+universal takes quite a while to install since it builds llvm-11 from scratch, but i suspect it’s worth it.
> 
> i think a discussion needs to happen to rename ken’s port to libcxx, and the latter to something that conveys since macports users should be pointed to his port before the existing one.
> 
> i really think macports-libcxx should replace libcxx. i noticed ken has added himself to the open tickets on libcxx and also christopher chavez has asked questions about its usefulness.
> 
> put briefly: i found libcxx to be unhelpful when (successfully) building nodejs14/18, opting to link in llvm’s libcxx from /opt/libexec
> 
> flat out, libcxx is ’too old’ to deserve retention of the primary name for a crucial library on macports. 
> 	-i noticed that ken removed himself from maintaining libcxx since it’s for snow leopard and older. 
> 		https://github.com/macports/macports-ports/commit/8ce65b33a1970046bdcb22ee86227301427d6135
> 
> i therefore think this should be on “the council”’s next meeting minutes.
> 	-thanks for all your hard work btw ken. i have to buy a beater sata ssd to start testing portfile edits with your macports-libcxx.
> 		-it is a travesty this hasn’t been massaged into the entire list of ports. 
> 
> to have nodejs14/18/gdb/etc all on an “old” 10.7 install really speaks to ethos of this package manager and, at one time, this operating system.
> 
> nice job man.
> 
> Thanks,
> Gagan
> 
>> On Sep 25, 2024, at 2:14 PM, Gagan Sidhu via macports-dev <macports-dev at lists.macports.org> wrote:
>> 
>> thanks ken. i am aware of this library, but i’ve never used it outside of building clang with the +libstdcxx flag.
>> 
>> i guess this may be a case of updating some portfiles to use this flag.
>> 
>> doesn't nodejs18 have this portgroup enabled? i see
>> 
>>> PortGroup               legacysupport 1.1
>> 
>> 
>> and 
>> 
>>> [legacysupport::get_library_link_flags]
>> 
>> 
>> in the LDFLAGS. 
>> 
>> i assumed that meant it was included. or must 
>> 
>>> legacysupport.use_mp_libcxx yes
>> 
>> 
>> still be added? 
>> 
>> Thanks,
>> Gagan
>> 
>>> On Sep 25, 2024, at 2:05 PM, Ken Cunningham <ken.cunningham.webuse at gmail.com> wrote:
>>> 
>>> check out:
>>> 
>>> https://ports.macports.org/port/macports-libcxx/
>>> 
>>> 
>>>> On Sep 25, 2024, at 12:22 PM, Gagan Sidhu via macports-dev <macports-dev at lists.macports.org> wrote:
>>>> 
>>>> … but i guess we’re shorthanded.
>>>> 
>>>> today i built nodejs18 with a couple of flags anyone could find if they attempted it (after removing the OS check via sudo port edit), and then hard-coding (lol it was a test) -L/opt/local/libexec/llvm-17/lib/libc++
>>>> 
>>>> it works completely fine if i put that path on LD_LIBRARY_PATH (“just?” lol)
>>>> - i know that’s a huge siren for the maintainers here lol, i get it, but the point isn’t that this version was ready for distribution)
>>>> 
>>>> given the static libc++ included in the ports llvm, it seems to me there is a tonne of opportunity to use the static libc++ from newer llvms to supplement the older /usr/lib/libc++ to take our game to the next level.
>>>> 
>>>> of course it may not be that simple. i’m far from a compiler expert, acknowledge the library name clash of /usr/lib/libc++ and the static in /opt/local/libexec/llvm-<version>, and this may be what the macports libc++ was designed to alleviate.
>>>> 
>>>> i just thought it was pretty interesting to have a newish node on an “old” OS with relatively little effort.
>>>> - i bet this experience would apply to a lot of ports, hence my first line (underhanded).
>>>> 
>>>> 
>>>> Thanks,
>>>> Gagan
>>>> 
>>> 
>> 
> 



More information about the macports-dev mailing list