Opened 6 weeks ago

Closed 6 weeks ago

Last modified 6 weeks ago

#71038 closed defect (fixed)

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 (10)

comment:2 Changed 6 weeks 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 6 weeks ago by jmroot (Joshua Root) (previous) (diff)

comment:3 Changed 6 weeks ago by jmroot (Joshua Root)

Owner: set to graywolf
Status: newassigned

comment:4 in reply to:  2 Changed 6 weeks 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 6 weeks ago by jmroot (Joshua Root)

Cc: ivmai@… herbygillot added

comment:6 Changed 6 weeks 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 6 weeks 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 6 weeks 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.

comment:9 Changed 6 weeks ago by graywolf (W.)

Resolution: fixed
Status: assignedclosed

In 7b76ac71657f9a6bd798443da87c399ac1207bb7/macports-ports (master):

guile-3.0: Bump revision.

Commit b68c30c52be7790bbe795e5815e440464ddec0f0 removed libatomic_ops from
dependencies of boehmgc, but did not bump revision on downstream
consumer (guile-3.0). So let us do the bump here.

Closes: #71038

  • lang/guile-3.0/Portfile (revision): Set to 1.

comment:10 Changed 6 weeks ago by graywolf (W.)

I have opened a separate ticket for guile-2.2: #71042

Last edited 6 weeks ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)
Note: See TracTickets for help on using tickets.