Skip to content

Cannot compile program with stdlib on ubuntu #6806

Closed

Description

@Sinfolke

Not following template, as it's simple linking. I think you encountered these issues before, but i could not see any quick solution.

  note: Perry workspace source not found — linking the prebuilt full stdlib (larger binary). Set PERRY_WORKSPACE_ROOT to a source checkout to enable size-optimized rebuilds.
Linking (with stdlib)...
[strip-dedup] libperry_runtime.a: localized 31 stdlib-stub symbol(s) so perry-stdlib wins the link (#5000, macOS/Linux)
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `perry_stdlib::http::external_client_request::string_property':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib4http23external_client_request15string_property17h5176fed364a03991E+0x10): undefined reference to `js_ext_http_client_request_is_handle'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib4http23external_client_request15string_property17h5176fed364a03991E+0x23): undefined reference to `js_ext_http_client_request_dispatch_property'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `perry_stdlib::common::async_bridge::stdlib_fast_drive':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common12async_bridge17stdlib_fast_drive17h25840e60e4b87fdbE+0x18): undefined reference to `js_ext_http_client_inflight'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `perry_stdlib::common::async_bridge::js_stdlib_has_active_handles':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common12async_bridge28js_stdlib_has_active_handles17h6b4160dd0eaae7d9E+0xd6): undefined reference to `js_http_has_pending'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common12async_bridge28js_stdlib_has_active_handles17h6b4160dd0eaae7d9E+0xe0): undefined reference to `js_ext_http_client_inflight'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `perry_stdlib::common::dispatch_http::dispatch_client_request_method':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common13dispatch_http30dispatch_client_request_method17h27f726c941d6d4ebE+0x34e): undefined reference to `js_ext_http_client_request_is_handle'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common13dispatch_http30dispatch_client_request_method17h27f726c941d6d4ebE+0x367): undefined reference to `js_ext_http_client_request_dispatch_method'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `perry_stdlib::common::dispatch_http::dispatch_client_incoming_method':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common13dispatch_http31dispatch_client_incoming_method17he70fff201a202ce5E+0x99): undefined reference to `js_http_is_incoming_message'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common13dispatch_http31dispatch_client_incoming_method17he70fff201a202ce5E+0x1e7): undefined reference to `js_http_incoming_message_pipe'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `perry_stdlib::common::dispatch_http::dispatch_client_request_property':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common13dispatch_http32dispatch_client_request_property17h18f5a8428462e9b7E+0x55d): undefined reference to `js_ext_http_client_request_is_handle'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common13dispatch_http32dispatch_client_request_property17h18f5a8428462e9b7E+0x570): undefined reference to `js_ext_http_client_request_dispatch_property'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `perry_stdlib::common::dispatch_http::dispatch_client_incoming_property':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common13dispatch_http33dispatch_client_incoming_property17h939851a86e1dd7a2E+0x3e): undefined reference to `js_http_is_incoming_message'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common13dispatch_http33dispatch_client_incoming_property17h939851a86e1dd7a2E+0xf4): undefined reference to `js_http_is_incoming_message'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text._ZN12perry_stdlib6common13dispatch_http33dispatch_client_incoming_property17h939851a86e1dd7a2E+0x21a): undefined reference to `js_http_response_trailers'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `js_handle_method_dispatch':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text.js_handle_method_dispatch+0x1206): undefined reference to `js_ext_http_agent_is_handle'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text.js_handle_method_dispatch+0x1228): undefined reference to `js_ext_http_agent_dispatch_method'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text.js_handle_method_dispatch+0x3625): undefined reference to `js_ext_http_client_incoming_message_is_handle'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `js_handle_property_dispatch':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text.js_handle_property_dispatch+0x1451): undefined reference to `js_ext_http_agent_is_handle'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text.js_handle_property_dispatch+0x1476): undefined reference to `js_ext_http_agent_dispatch_property'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `js_handle_property_set_dispatch':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text.js_handle_property_set_dispatch+0x359): undefined reference to `js_ext_http_agent_is_handle'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text.js_handle_property_set_dispatch+0x381): undefined reference to `js_ext_http_agent_dispatch_property_set'
/usr/bin/ld: /home/ura/.cache/perry/libs/13158c3-6a60eaec/libperry_stdlib.a(perry_stdlib-061d84d432c21055.perry_stdlib-fa0f0dda7fb64165.perry_stdlib.8e81a7269d0a2968-cgu.0.rcgu.o.rcgu.o): in function `js_http_incoming_message_set_encoding':
perry_stdlib.8e81a7269d0a2968-cgu.0:(.text.js_http_incoming_message_set_encoding+0xbd): undefined reference to `js_ext_http_client_incoming_message_is_handle'
/usr/bin/ld: perry_stdlib.8e81a7269d0a2968-cgu.0:(.text.js_http_incoming_message_set_encoding+0xcd): undefined reference to `js_ext_http_client_incoming_message_set_encoding'
collect2: error: ld returned 1 exit status
Error: Linking failed
ninja: build stopped: subcommand failed.

Activity

  1. proggeramlug commented on Jul 24, 2026

    @proggeramlug
    Contributor

    @Sinfolke Thanks, I'm on it!

  2. added
    triagedMaintainer reviewed; type, scope, and next step are clear
    on Jul 26, 2026
  3. proggeramlug commented on Aug 12, 2026

    @proggeramlug
    Contributor

    Validated this from a fresh worktree at current main (f110261a4). The source-side linker defect is already fixed by #5983 / 4500b5de4:

    • v0.5.1220 included external-http-client-pump in perry-stdlib's full feature, which pulled in declarations for the exact missing js_ext_http_* / js_http_* symbols reported here without linking perry-ext-http.
    • fix(stdlib): drop external-http-client-pump from full — restore the ext-http link lockstep #5983 removed that pump from full; current main retains the fix and activates it only when node:http/https also puts perry-ext-http on the program's link surface.
    • cargo test -p perry-stdlib --no-run now completes successfully and links the stdlib unit/integration test executables; none of the reported unresolved symbols remain.

    The latest published package/release is still v0.5.1220, so installed-package users can still encounter the old artifact. That remaining distribution problem is tracked by #7491, with a new publish already acknowledged there.

    Closing this issue as fixed in source by #5983 and consolidated into #7491 for release availability. No additional code change is needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugConfirmed defect or regressiontriagedMaintainer reviewed; type, scope, and next step are clear

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions