Repository navigation
edg-pack-cpfe-ce expects lib/libedgrt.a but the build produces libC.a #16
Closed
mattgodbolt-molty
started this conversation in
Issue Triage - General
Replies: 1 comment 1 reply
|
For now we should explicitly set EDG_RUNTIME_LIB="edgrt" during build, this should ensure the library is produced with the expected name. |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Issue Summary
dev_tools/bin/edg-pack-cpfe-cepackageslib/libedgrt.a, but a 7.0 build produceslib/libC.a, so the packer fails with a missing file on a stock build. cc @DarkArc (Matt Godbolt mentioned he's been chatting with you about this).Context: we're moving Compiler Explorer's EDG builds from the tarballs you've been sending us to building them ourselves from this repo, using
edg-pack-cpfe-ceso the package layout stays the same as 6.5 to 6.9. Our installer (bin/lib/installable/edg.pyin compiler-explorer/infra) wrapsbin/eccpin a shim that setsEDG_RUNTIME_LIB="edgrt", matching thelibedgrt.ain the tarballs we've received so far.Observed Behavior
On tag
7.0(51d5795), Ubuntu with gcc 15:The runtime library is
build/gcc-release/lib/libC.a(andlib_linux_x86_64/libC.a), so the packer stops with:util/eccp.shalso defaultsEDG_RUNTIME_LIBto"C".Expected Behavior
edg-pack-cpfe-cepackages the runtime library that the build produces, under the name the packagedeccpexpects.Either of these would work for us:
libC.ainto the tarball aslib/libedgrt.a. This is the same layout as the 6.x packages, so our installer works unchanged.lib/libC.a, and we stop settingEDG_RUNTIME_LIBfor 7.0 and later builds.Option 1 means no change on our side, but we're happy with whichever you'd prefer long term.
Additional Details
With
libC.acopied tolibedgrt.aby hand, the packer produces the same layout as your 6.9 tarballs. Through our unchanged installer, bothgccanddefaultmodes reportversion 7.0, and GNU mode compiles, links and runs a C++20 test using<vector>,<string>, exceptions and virtual calls.A smaller packer issue: the
--helpexamples use--add-flags '--set-flag reflection', but cpfe spells it--set_flagand rejects--set-flagwith "invalid option". The help also names the headers flag as both--add-cpp-experimental-includesand--add-cpp-experimental-headers, while the argument parser accepts--add-experimental-headers.All reactions