Opened 11 hours ago

Last modified 3 hours ago

#71038 assigned defect

guile-2.2 guile-3.0 pre-built binaries .pc files unexpectedly linked to libatomic_ops

Reported by: holymonson (Monson Shao) Owned by: graywolf (W.)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: ivmai@…, herbygillot (Herby Gillot)
Port: guile-2.2 guile-3.0

Description

In guile-3.0 pre-built binaries, guile-3.0.pc contains -latomic_ops, which is unexpected, and does not exist when built from source.

This will block building of packages that depands on guile if libatomic_ops not installed in their system.

❯ diff -u ./guile-3.0.pc /opt/local/lib/pkgconfig/guile-3.0.pc
--- ./guile-3.0.pc	2024-10-04 20:40:35.000000000 +0800
+++ /opt/local/lib/pkgconfig/guile-3.0.pc	2024-09-03 16:02:21.000000000 +0800
@@ -22,7 +22,7 @@
 Name: GNU Guile
 Description: GNU's Ubiquitous Intelligent Language for Extension
 Version: 3.0.10
-Libs: -L${libdir} -lguile-3.0 -L/opt/local/lib -lgc -lpthread
+Libs: -L${libdir} -lguile-3.0 -L/opt/local/lib -latomic_ops -lgc -lpthread
 Libs.private:  -lgmp  -L/opt/local/lib -lffi	\
   -lunistring  -liconv -lintl -Wl,-framework -Wl,CoreFoundation 		\
      		\


I manually checked and it could be found in both guile-3.0-3.0.10_0.darwin_21.x86_64 and guile-2.2-2.2.7_3.darwin_21.x86_64 at least.

❯ rg atomic_ops /opt/local/var/macports/software/guile*
/opt/local/var/macports/software/guile-3.0/guile-3.0-3.0.10_0.darwin_21.x86_64/opt/local/lib/pkgconfig/guile-3.0.pc
25:Libs: -L${libdir} -lguile-3.0 -L/opt/local/lib -latomic_ops -lgc -lpthread

/opt/local/var/macports/software/guile-2.2/guile-2.2-2.2.7_3.darwin_21.x86_64/opt/local/lib/pkgconfig/guile-2.2.pc
25:Libs: -L${libdir} -lguile-2.2 -L/opt/local/lib -latomic_ops -lgc -lpthread

Change History (8)

comment:2 Changed 9 hours ago by graywolf (W.)

It seems that in [b68c30c52be7790bbe795e5815e440464ddec0f0/macports-ports] the libatomic_ops was removed from boehmgc dependencies, without revision bump of any downstream consumers. I will make a PR with revision bump for guile-3.0.

(Would have assigned the ticket to me but do not have the permissions.)

Last edited 9 hours ago by jmroot (Joshua Root) (previous) (diff)

comment:3 Changed 9 hours ago by jmroot (Joshua Root)

Owner: set to graywolf
Status: newassigned

comment:4 in reply to:  2 Changed 8 hours ago by jmroot (Joshua Root)

Replying to graywolf:

It seems that in [b68c30c52be7790bbe795e5815e440464ddec0f0/macports-ports] the libatomic_ops was removed from boehmgc dependencies, without revision bump of any downstream consumers. I will make a PR with revision bump for guile-3.0.

It seems like the correct resolution there would have been to patch the .pc file. If it's a static lib that boehmgc uses but does not have to be directly used by its dependents, it belongs in Libs.private rather than Libs. Possibly guile is making the same mistake by putting the boehmgc link flags in Libs?

Fixing this overlinking does unfortunately require a rev bump, however it's done.

comment:5 Changed 8 hours ago by jmroot (Joshua Root)

Cc: ivmai@… herbygillot added

comment:6 Changed 8 hours ago by graywolf (W.)

Possibly guile is making the same mistake by putting the boehmgc link flags in Libs?

Sadly I cannot really comment on this one. Will ask the upstream on the mailing list.

comment:7 in reply to:  2 Changed 7 hours ago by holymonson (Monson Shao)

Replying to graywolf:

It seems that in [b68c30c52be7790bbe795e5815e440464ddec0f0/macports-ports] the libatomic_ops was removed from boehmgc dependencies, without revision bump of any downstream consumers. I will make a PR with revision bump for guile-3.0.

(Would have assigned the ticket to me but do not have the permissions.)

It seems guile-2.2 also need a revision bump too.

comment:8 Changed 3 hours ago by graywolf (W.)

It seems guile-2.2 also need a revision bump too.

Yes, would assume so. That one is nomaintainer, so feel free to make a PR.

Note: See TracTickets for help on using tickets.