Opened 6 months ago

Last modified 6 months ago

#73525 assigned defect

libcxx invades undocumented on Mac OS X 10.6.8, Snow Leopard, the file system and leaves unregstered files

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.12.1
Keywords: snowleopard Cc:
Port: libcxx

Description

port -v install libcxx
--->  Fetching archive for libcxx
Attempting to fetch http://packages.macports.org/libcxx/libcxx-5.0.1_5%2Bemulated_tls%2Buniversal.darwin_10.i386-x86_64.tbz2
Attempting to fetch http://packages.macports.org/libcxx/libcxx-5.0.1_5%2Bemulated_tls%2Buniversal.darwin_10.i386-x86_64.tbz2.rmd160
--->  Installing libcxx @5.0.1_5+emulated_tls+universal
--->  Activating libcxx @5.0.1_5+emulated_tls+universal
x ./
x ./+COMMENT
x ./+CONTENTS
x ./+DESC
x ./+PORTFILE
x ./+STATE
x ./opt/
x ./opt/local/
x ./opt/local/var/
x ./opt/local/var/system_roots/
x ./opt/local/var/system_roots/libcxx-5.0.1-5.tgz
--->  Cleaning libcxx
--->  Removing work directory for libcxx
--->  Scanning binaries for linking errors
--->  No broken files found.
--->  No broken ports found.

pete 57 /\  ls -l /usr/lib/lib{,std}c++*
-rwxr-xr-x  1 root  admin   2304336  3 Aug  2022 /usr/lib/libc++.1.dylib
lrwxr-xr-x  1 root  admin        14  3 Aug  2022 /usr/lib/libc++.dylib -> libc++.1.dylib
-rwxr-xr-x  1 root  admin    469888  3 Aug  2022 /usr/lib/libc++abi.dylib
-rw-r--r--  1 root  wheel  15401916 24 Okt  2010 /usr/lib/libstdc++-static.a
-rwxr-xr-x  1 root  wheel   2439888 18 Mai  2009 /usr/lib/libstdc++.6.0.9.dylib
lrwxr-xr-x  1 root  wheel        21 23 Feb 11:07 /usr/lib/libstdc++.6.dylib -> libstdc++.6.0.9.dylib
========================================================
pete 58 /\  ls -l /opt/local/var/system_roots/libcxx-5.0.1-5.tgz
-rw-r--r--  1 root  admin  714906  3 Aug  2022 /opt/local/var/system_roots/libcxx-5.0.1-5.tgz
pete 59 /\  tar vtf /opt/local/var/system_roots/libcxx-5.0.1-5.tgz
drwxr-xr-x  0 root   admin       0  3 Aug  2022 ./
drwxr-xr-x  0 root   admin       0  3 Aug  2022 ./usr/
drwxr-xr-x  0 root   admin       0  3 Aug  2022 ./usr/include/
drwxr-xr-x  0 root   admin       0  3 Aug  2022 ./usr/lib/
-rwxr-xr-x  0 root   admin 2304336  3 Aug  2022 ./usr/lib/libc++.1.dylib
lrwxr-xr-x  0 root   admin       0  3 Aug  2022 ./usr/lib/libc++.dylib -> libc++.1.dylib
-rwxr-xr-x  0 root   admin  469888  3 Aug  2022 ./usr/lib/libc++abi.dylib
-rwxr-xr-x  0 root   admin    2032  3 Aug  2022 ./usr/include/__cxxabi_config.h
-rwxr-xr-x  0 root   admin    6949  3 Aug  2022 ./usr/include/cxxabi.h

Change History (7)

comment:1 Changed 6 months ago by jmroot (Joshua Root)

Cc: jeremyhu@… removed
Owner: set to jeremyhu
Status: newassigned

Yes, as mentioned in the port description, it installs into /usr/lib on 10.6 because there is no system libc++ there. IIRC there were slightly complicated reasons why it creates the files during activation.

comment:2 Changed 6 months ago by jmroot (Joshua Root)

Ticket #42385 is the reason.

comment:3 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

When are these files needed by which executable? It's now a decade later and those old Clang or Clang++ compilers are out of use. And it's a buggy port: the files listed are *not* uninstalled.

comment:4 in reply to:  3 ; Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to ballapete:

When are these files needed by which executable?

libc++ is needed by executables whose code was written in C++.

comment:5 in reply to:  3 ; Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to ballapete:

It's now a decade later and those old Clang or Clang++ compilers are out of use.

What clang are you talking about? #42385 didn't mention clang and is not specific to any port.

And it's a buggy port: the files listed are *not* uninstalled.

I agree with this. The port used to install its files normally, so that they would be uninstalled normally, but #42385 demonstrated a case where that would cause a problem, so it was changed to install its files in a nonstandard way and not uninstall its files at all. Ideally the port should be changed so that it uninstalls its files when doing so would not be a problem.

comment:6 in reply to:  5 Changed 6 months ago by jmroot (Joshua Root)

Replying to ryandesign:

Ideally the port should be changed so that it uninstalls its files when doing so would not be a problem.

Sure. When doing so would not be a problem is basically when it's still on < 10.7 when the deactivate target is run.

comment:7 in reply to:  4 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

Replying to ryandesign:

Replying to ballapete:

libc++ is needed by executables whose code was written in C++.

Ins't this file installed in /opt/local/libexec/<compiler>/...? And the compiler cannot find its constituents?

Note: See TracTickets for help on using tickets.