Skip to content

build: use static glibc linking for Linux releases - #76

Merged
ammario merged 2 commits into
mainfrom
static-link
Oct 3, 2025
Merged

build: use static glibc linking for Linux releases#76
ammario merged 2 commits into
mainfrom
static-link

Conversation

@ammario

@ammarioammario commented Oct 3, 2025

Copy link
Copy Markdown
Member

Summary

Implements static linking for Linux releases to improve portability across different Linux distributions.

Problem

Current Linux releases use dynamic linking, which means:

  • Binaries may not work on systems with older or different glibc versions
  • Users need compatible system libraries installed
  • Distribution compatibility is limited

Solution

Use static glibc linking with the gnu target and crt-static flag:

  • Binaries are fully statically linked using static-pie
  • Works across a wide range of Linux distributions (glibc 2.17+)
  • V8 prebuilt binaries are available for gnu targets (musl not supported by V8)

Changes

  • Update build.rs to configure -static-libgcc for Linux gnu targets
  • Add scripts/build-static.sh for building with RUSTFLAGS="-C target-feature=+crt-static"
  • Update release workflow to build static binaries for Linux targets
  • Remove ARM64 cross-compilation setup (now handled by build script)

Testing

Verified on ci-1 (Debian 12, glibc 2.36):

  • ✅ Binary is fully statically linked (static-pie)
  • ✅ Binary size: 52M unstripped / 39M stripped
  • ✅ Works on Ubuntu 18.04 (glibc 2.27)
  • ✅ Works on CentOS 7 (glibc 2.17)
  • ✅ Fast builds using V8 prebuilt binaries
$ file httpjail
httpjail: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), static-pie linked, for GNU/Linux 3.2.0, not stripped
$ ldd httpjail
statically linked

Benefits

  1. Portability: Works on Linux systems from 2014+ (glibc 2.17+)
  2. Build speed: Uses V8 prebuilt binaries (no lengthy source compilation)
  3. Simplicity: Single binary works across distributions
  4. Size: Minimal overhead (52M total, 39M stripped)

Note on musl

We use gnu (glibc) instead of musl because V8 doesn't provide prebuilt musl binaries and building V8 from source for musl is not currently feasible.

🤖 Generated with Claude Code

Switches Linux releases from musl to static glibc (gnu) targets with crt-static.
This change is necessary because V8 doesn't provide prebuilt musl binaries and
building V8 from source for musl fails with 404 errors on dependency downloads.
Changes:
- Update build.rs to configure static-libgcc for Linux gnu targets
- Add scripts/build-static.sh for building with RUSTFLAGS crt-static
- Update release workflow to use x86_64/aarch64-unknown-linux-gnu targets
- Remove musl build script and ARM64 cross-compilation setup
Benefits:
- Fully statically linked binaries (static-pie) for excellent portability
- Tested working on Ubuntu 18.04 (glibc 2.27) and CentOS 7 (glibc 2.17)
- Binary size: 52M unstripped / 39M stripped (comparable to dynamic builds)
- Fast builds using V8 prebuilt binaries (no 20-30min source compilation)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammarioammario changed the title build: use static glibc linking for Linux releases instead of muslbuild: use static glibc linking for Linux releasesOct 3, 2025

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment threadscripts/build-static.sh Outdated
The build script determined target solely from uname -m, causing
ARM64 builds on x86_64 runners to produce wrong architecture binaries.
Changes:
- Update build-static.sh to accept target as argument
- Pass matrix.target from workflow to build script
- Re-add ARM64 cross-compilation tools setup
- Improve output messages to distinguish auto-detected vs specified targets
Fixes the P0 issue where aarch64-unknown-linux-gnu builds failed because
the script built x86_64 binaries while tarball step expected aarch64.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammario
ammario merged commit cb5c602 into mainOct 3, 2025
6 checks passed
@ammario
ammario deleted the static-link branch October 3, 2025 15:28
@ammarioammario mentioned this pull request Oct 3, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ammario
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
build: use static glibc linking for Linux releases by ammario · Pull Request #76 · coder/httpjail · GitHub
Skip to content

build: use static glibc linking for Linux releases - #76

Merged
ammario merged 2 commits into
mainfrom
static-link
Oct 3, 2025
Merged

build: use static glibc linking for Linux releases#76
ammario merged 2 commits into
mainfrom
static-link

Conversation

@ammario

@ammarioammario commented Oct 3, 2025

Copy link
Copy Markdown
Member

Summary

Implements static linking for Linux releases to improve portability across different Linux distributions.

Problem

Current Linux releases use dynamic linking, which means:

  • Binaries may not work on systems with older or different glibc versions
  • Users need compatible system libraries installed
  • Distribution compatibility is limited

Solution

Use static glibc linking with the gnu target and crt-static flag:

  • Binaries are fully statically linked using static-pie
  • Works across a wide range of Linux distributions (glibc 2.17+)
  • V8 prebuilt binaries are available for gnu targets (musl not supported by V8)

Changes

  • Update build.rs to configure -static-libgcc for Linux gnu targets
  • Add scripts/build-static.sh for building with RUSTFLAGS="-C target-feature=+crt-static"
  • Update release workflow to build static binaries for Linux targets
  • Remove ARM64 cross-compilation setup (now handled by build script)

Testing

Verified on ci-1 (Debian 12, glibc 2.36):

  • ✅ Binary is fully statically linked (static-pie)
  • ✅ Binary size: 52M unstripped / 39M stripped
  • ✅ Works on Ubuntu 18.04 (glibc 2.27)
  • ✅ Works on CentOS 7 (glibc 2.17)
  • ✅ Fast builds using V8 prebuilt binaries
$ file httpjail
httpjail: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), static-pie linked, for GNU/Linux 3.2.0, not stripped
$ ldd httpjail
statically linked

Benefits

  1. Portability: Works on Linux systems from 2014+ (glibc 2.17+)
  2. Build speed: Uses V8 prebuilt binaries (no lengthy source compilation)
  3. Simplicity: Single binary works across distributions
  4. Size: Minimal overhead (52M total, 39M stripped)

Note on musl

We use gnu (glibc) instead of musl because V8 doesn't provide prebuilt musl binaries and building V8 from source for musl is not currently feasible.

🤖 Generated with Claude Code

Switches Linux releases from musl to static glibc (gnu) targets with crt-static.
This change is necessary because V8 doesn't provide prebuilt musl binaries and
building V8 from source for musl fails with 404 errors on dependency downloads.
Changes:
- Update build.rs to configure static-libgcc for Linux gnu targets
- Add scripts/build-static.sh for building with RUSTFLAGS crt-static
- Update release workflow to use x86_64/aarch64-unknown-linux-gnu targets
- Remove musl build script and ARM64 cross-compilation setup
Benefits:
- Fully statically linked binaries (static-pie) for excellent portability
- Tested working on Ubuntu 18.04 (glibc 2.27) and CentOS 7 (glibc 2.17)
- Binary size: 52M unstripped / 39M stripped (comparable to dynamic builds)
- Fast builds using V8 prebuilt binaries (no 20-30min source compilation)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammarioammario changed the title build: use static glibc linking for Linux releases instead of muslbuild: use static glibc linking for Linux releasesOct 3, 2025

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment threadscripts/build-static.sh Outdated
The build script determined target solely from uname -m, causing
ARM64 builds on x86_64 runners to produce wrong architecture binaries.
Changes:
- Update build-static.sh to accept target as argument
- Pass matrix.target from workflow to build script
- Re-add ARM64 cross-compilation tools setup
- Improve output messages to distinguish auto-detected vs specified targets
Fixes the P0 issue where aarch64-unknown-linux-gnu builds failed because
the script built x86_64 binaries while tarball step expected aarch64.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammario
ammario merged commit cb5c602 into mainOct 3, 2025
6 checks passed
@ammario
ammario deleted the static-link branch October 3, 2025 15:28
@ammarioammario mentioned this pull request Oct 3, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ammario
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' build: use static glibc linking for Linux releases by ammario · Pull Request #76 · coder/httpjail · GitHub
Skip to content

build: use static glibc linking for Linux releases - #76

Merged
ammario merged 2 commits into
mainfrom
static-link
Oct 3, 2025
Merged

build: use static glibc linking for Linux releases#76
ammario merged 2 commits into
mainfrom
static-link

Conversation

@ammario

@ammarioammario commented Oct 3, 2025

Copy link
Copy Markdown
Member

Summary

Implements static linking for Linux releases to improve portability across different Linux distributions.

Problem

Current Linux releases use dynamic linking, which means:

  • Binaries may not work on systems with older or different glibc versions
  • Users need compatible system libraries installed
  • Distribution compatibility is limited

Solution

Use static glibc linking with the gnu target and crt-static flag:

  • Binaries are fully statically linked using static-pie
  • Works across a wide range of Linux distributions (glibc 2.17+)
  • V8 prebuilt binaries are available for gnu targets (musl not supported by V8)

Changes

  • Update build.rs to configure -static-libgcc for Linux gnu targets
  • Add scripts/build-static.sh for building with RUSTFLAGS="-C target-feature=+crt-static"
  • Update release workflow to build static binaries for Linux targets
  • Remove ARM64 cross-compilation setup (now handled by build script)

Testing

Verified on ci-1 (Debian 12, glibc 2.36):

  • ✅ Binary is fully statically linked (static-pie)
  • ✅ Binary size: 52M unstripped / 39M stripped
  • ✅ Works on Ubuntu 18.04 (glibc 2.27)
  • ✅ Works on CentOS 7 (glibc 2.17)
  • ✅ Fast builds using V8 prebuilt binaries
$ file httpjail
httpjail: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), static-pie linked, for GNU/Linux 3.2.0, not stripped
$ ldd httpjail
statically linked

Benefits

  1. Portability: Works on Linux systems from 2014+ (glibc 2.17+)
  2. Build speed: Uses V8 prebuilt binaries (no lengthy source compilation)
  3. Simplicity: Single binary works across distributions
  4. Size: Minimal overhead (52M total, 39M stripped)

Note on musl

We use gnu (glibc) instead of musl because V8 doesn't provide prebuilt musl binaries and building V8 from source for musl is not currently feasible.

🤖 Generated with Claude Code

Switches Linux releases from musl to static glibc (gnu) targets with crt-static.
This change is necessary because V8 doesn't provide prebuilt musl binaries and
building V8 from source for musl fails with 404 errors on dependency downloads.
Changes:
- Update build.rs to configure static-libgcc for Linux gnu targets
- Add scripts/build-static.sh for building with RUSTFLAGS crt-static
- Update release workflow to use x86_64/aarch64-unknown-linux-gnu targets
- Remove musl build script and ARM64 cross-compilation setup
Benefits:
- Fully statically linked binaries (static-pie) for excellent portability
- Tested working on Ubuntu 18.04 (glibc 2.27) and CentOS 7 (glibc 2.17)
- Binary size: 52M unstripped / 39M stripped (comparable to dynamic builds)
- Fast builds using V8 prebuilt binaries (no 20-30min source compilation)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammarioammario changed the title build: use static glibc linking for Linux releases instead of muslbuild: use static glibc linking for Linux releasesOct 3, 2025

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment threadscripts/build-static.sh Outdated
The build script determined target solely from uname -m, causing
ARM64 builds on x86_64 runners to produce wrong architecture binaries.
Changes:
- Update build-static.sh to accept target as argument
- Pass matrix.target from workflow to build script
- Re-add ARM64 cross-compilation tools setup
- Improve output messages to distinguish auto-detected vs specified targets
Fixes the P0 issue where aarch64-unknown-linux-gnu builds failed because
the script built x86_64 binaries while tarball step expected aarch64.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammario
ammario merged commit cb5c602 into mainOct 3, 2025
6 checks passed
@ammario
ammario deleted the static-link branch October 3, 2025 15:28
@ammarioammario mentioned this pull request Oct 3, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ammario
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' build: use static glibc linking for Linux releases by ammario · Pull Request #76 · coder/httpjail · GitHub
Skip to content

build: use static glibc linking for Linux releases - #76

Merged
ammario merged 2 commits into
mainfrom
static-link
Oct 3, 2025
Merged

build: use static glibc linking for Linux releases#76
ammario merged 2 commits into
mainfrom
static-link

Conversation

@ammario

@ammarioammario commented Oct 3, 2025

Copy link
Copy Markdown
Member

Summary

Implements static linking for Linux releases to improve portability across different Linux distributions.

Problem

Current Linux releases use dynamic linking, which means:

  • Binaries may not work on systems with older or different glibc versions
  • Users need compatible system libraries installed
  • Distribution compatibility is limited

Solution

Use static glibc linking with the gnu target and crt-static flag:

  • Binaries are fully statically linked using static-pie
  • Works across a wide range of Linux distributions (glibc 2.17+)
  • V8 prebuilt binaries are available for gnu targets (musl not supported by V8)

Changes

  • Update build.rs to configure -static-libgcc for Linux gnu targets
  • Add scripts/build-static.sh for building with RUSTFLAGS="-C target-feature=+crt-static"
  • Update release workflow to build static binaries for Linux targets
  • Remove ARM64 cross-compilation setup (now handled by build script)

Testing

Verified on ci-1 (Debian 12, glibc 2.36):

  • ✅ Binary is fully statically linked (static-pie)
  • ✅ Binary size: 52M unstripped / 39M stripped
  • ✅ Works on Ubuntu 18.04 (glibc 2.27)
  • ✅ Works on CentOS 7 (glibc 2.17)
  • ✅ Fast builds using V8 prebuilt binaries
$ file httpjail
httpjail: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), static-pie linked, for GNU/Linux 3.2.0, not stripped
$ ldd httpjail
statically linked

Benefits

  1. Portability: Works on Linux systems from 2014+ (glibc 2.17+)
  2. Build speed: Uses V8 prebuilt binaries (no lengthy source compilation)
  3. Simplicity: Single binary works across distributions
  4. Size: Minimal overhead (52M total, 39M stripped)

Note on musl

We use gnu (glibc) instead of musl because V8 doesn't provide prebuilt musl binaries and building V8 from source for musl is not currently feasible.

🤖 Generated with Claude Code

Switches Linux releases from musl to static glibc (gnu) targets with crt-static.
This change is necessary because V8 doesn't provide prebuilt musl binaries and
building V8 from source for musl fails with 404 errors on dependency downloads.
Changes:
- Update build.rs to configure static-libgcc for Linux gnu targets
- Add scripts/build-static.sh for building with RUSTFLAGS crt-static
- Update release workflow to use x86_64/aarch64-unknown-linux-gnu targets
- Remove musl build script and ARM64 cross-compilation setup
Benefits:
- Fully statically linked binaries (static-pie) for excellent portability
- Tested working on Ubuntu 18.04 (glibc 2.27) and CentOS 7 (glibc 2.17)
- Binary size: 52M unstripped / 39M stripped (comparable to dynamic builds)
- Fast builds using V8 prebuilt binaries (no 20-30min source compilation)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammarioammario changed the title build: use static glibc linking for Linux releases instead of muslbuild: use static glibc linking for Linux releasesOct 3, 2025

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment threadscripts/build-static.sh Outdated
The build script determined target solely from uname -m, causing
ARM64 builds on x86_64 runners to produce wrong architecture binaries.
Changes:
- Update build-static.sh to accept target as argument
- Pass matrix.target from workflow to build script
- Re-add ARM64 cross-compilation tools setup
- Improve output messages to distinguish auto-detected vs specified targets
Fixes the P0 issue where aarch64-unknown-linux-gnu builds failed because
the script built x86_64 binaries while tarball step expected aarch64.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammario
ammario merged commit cb5c602 into mainOct 3, 2025
6 checks passed
@ammario
ammario deleted the static-link branch October 3, 2025 15:28
@ammarioammario mentioned this pull request Oct 3, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ammario
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' build: use static glibc linking for Linux releases by ammario · Pull Request #76 · coder/httpjail · GitHub
Skip to content

build: use static glibc linking for Linux releases - #76

Merged
ammario merged 2 commits into
mainfrom
static-link
Oct 3, 2025
Merged

build: use static glibc linking for Linux releases#76
ammario merged 2 commits into
mainfrom
static-link

Conversation

@ammario

@ammarioammario commented Oct 3, 2025

Copy link
Copy Markdown
Member

Summary

Implements static linking for Linux releases to improve portability across different Linux distributions.

Problem

Current Linux releases use dynamic linking, which means:

  • Binaries may not work on systems with older or different glibc versions
  • Users need compatible system libraries installed
  • Distribution compatibility is limited

Solution

Use static glibc linking with the gnu target and crt-static flag:

  • Binaries are fully statically linked using static-pie
  • Works across a wide range of Linux distributions (glibc 2.17+)
  • V8 prebuilt binaries are available for gnu targets (musl not supported by V8)

Changes

  • Update build.rs to configure -static-libgcc for Linux gnu targets
  • Add scripts/build-static.sh for building with RUSTFLAGS="-C target-feature=+crt-static"
  • Update release workflow to build static binaries for Linux targets
  • Remove ARM64 cross-compilation setup (now handled by build script)

Testing

Verified on ci-1 (Debian 12, glibc 2.36):

  • ✅ Binary is fully statically linked (static-pie)
  • ✅ Binary size: 52M unstripped / 39M stripped
  • ✅ Works on Ubuntu 18.04 (glibc 2.27)
  • ✅ Works on CentOS 7 (glibc 2.17)
  • ✅ Fast builds using V8 prebuilt binaries
$ file httpjail
httpjail: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), static-pie linked, for GNU/Linux 3.2.0, not stripped
$ ldd httpjail
statically linked

Benefits

  1. Portability: Works on Linux systems from 2014+ (glibc 2.17+)
  2. Build speed: Uses V8 prebuilt binaries (no lengthy source compilation)
  3. Simplicity: Single binary works across distributions
  4. Size: Minimal overhead (52M total, 39M stripped)

Note on musl

We use gnu (glibc) instead of musl because V8 doesn't provide prebuilt musl binaries and building V8 from source for musl is not currently feasible.

🤖 Generated with Claude Code

Switches Linux releases from musl to static glibc (gnu) targets with crt-static.
This change is necessary because V8 doesn't provide prebuilt musl binaries and
building V8 from source for musl fails with 404 errors on dependency downloads.
Changes:
- Update build.rs to configure static-libgcc for Linux gnu targets
- Add scripts/build-static.sh for building with RUSTFLAGS crt-static
- Update release workflow to use x86_64/aarch64-unknown-linux-gnu targets
- Remove musl build script and ARM64 cross-compilation setup
Benefits:
- Fully statically linked binaries (static-pie) for excellent portability
- Tested working on Ubuntu 18.04 (glibc 2.27) and CentOS 7 (glibc 2.17)
- Binary size: 52M unstripped / 39M stripped (comparable to dynamic builds)
- Fast builds using V8 prebuilt binaries (no 20-30min source compilation)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammarioammario changed the title build: use static glibc linking for Linux releases instead of muslbuild: use static glibc linking for Linux releasesOct 3, 2025

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment threadscripts/build-static.sh Outdated
The build script determined target solely from uname -m, causing
ARM64 builds on x86_64 runners to produce wrong architecture binaries.
Changes:
- Update build-static.sh to accept target as argument
- Pass matrix.target from workflow to build script
- Re-add ARM64 cross-compilation tools setup
- Improve output messages to distinguish auto-detected vs specified targets
Fixes the P0 issue where aarch64-unknown-linux-gnu builds failed because
the script built x86_64 binaries while tarball step expected aarch64.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammario
ammario merged commit cb5c602 into mainOct 3, 2025
6 checks passed
@ammario
ammario deleted the static-link branch October 3, 2025 15:28
@ammarioammario mentioned this pull request Oct 3, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ammario
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' build: use static glibc linking for Linux releases by ammario · Pull Request #76 · coder/httpjail · GitHub
Skip to content

build: use static glibc linking for Linux releases - #76

Merged
ammario merged 2 commits into
mainfrom
static-link
Oct 3, 2025
Merged

build: use static glibc linking for Linux releases#76
ammario merged 2 commits into
mainfrom
static-link

Conversation

@ammario

@ammarioammario commented Oct 3, 2025

Copy link
Copy Markdown
Member

Summary

Implements static linking for Linux releases to improve portability across different Linux distributions.

Problem

Current Linux releases use dynamic linking, which means:

  • Binaries may not work on systems with older or different glibc versions
  • Users need compatible system libraries installed
  • Distribution compatibility is limited

Solution

Use static glibc linking with the gnu target and crt-static flag:

  • Binaries are fully statically linked using static-pie
  • Works across a wide range of Linux distributions (glibc 2.17+)
  • V8 prebuilt binaries are available for gnu targets (musl not supported by V8)

Changes

  • Update build.rs to configure -static-libgcc for Linux gnu targets
  • Add scripts/build-static.sh for building with RUSTFLAGS="-C target-feature=+crt-static"
  • Update release workflow to build static binaries for Linux targets
  • Remove ARM64 cross-compilation setup (now handled by build script)

Testing

Verified on ci-1 (Debian 12, glibc 2.36):

  • ✅ Binary is fully statically linked (static-pie)
  • ✅ Binary size: 52M unstripped / 39M stripped
  • ✅ Works on Ubuntu 18.04 (glibc 2.27)
  • ✅ Works on CentOS 7 (glibc 2.17)
  • ✅ Fast builds using V8 prebuilt binaries
$ file httpjail
httpjail: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), static-pie linked, for GNU/Linux 3.2.0, not stripped
$ ldd httpjail
statically linked

Benefits

  1. Portability: Works on Linux systems from 2014+ (glibc 2.17+)
  2. Build speed: Uses V8 prebuilt binaries (no lengthy source compilation)
  3. Simplicity: Single binary works across distributions
  4. Size: Minimal overhead (52M total, 39M stripped)

Note on musl

We use gnu (glibc) instead of musl because V8 doesn't provide prebuilt musl binaries and building V8 from source for musl is not currently feasible.

🤖 Generated with Claude Code

Switches Linux releases from musl to static glibc (gnu) targets with crt-static.
This change is necessary because V8 doesn't provide prebuilt musl binaries and
building V8 from source for musl fails with 404 errors on dependency downloads.
Changes:
- Update build.rs to configure static-libgcc for Linux gnu targets
- Add scripts/build-static.sh for building with RUSTFLAGS crt-static
- Update release workflow to use x86_64/aarch64-unknown-linux-gnu targets
- Remove musl build script and ARM64 cross-compilation setup
Benefits:
- Fully statically linked binaries (static-pie) for excellent portability
- Tested working on Ubuntu 18.04 (glibc 2.27) and CentOS 7 (glibc 2.17)
- Binary size: 52M unstripped / 39M stripped (comparable to dynamic builds)
- Fast builds using V8 prebuilt binaries (no 20-30min source compilation)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammarioammario changed the title build: use static glibc linking for Linux releases instead of muslbuild: use static glibc linking for Linux releasesOct 3, 2025

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment threadscripts/build-static.sh Outdated
The build script determined target solely from uname -m, causing
ARM64 builds on x86_64 runners to produce wrong architecture binaries.
Changes:
- Update build-static.sh to accept target as argument
- Pass matrix.target from workflow to build script
- Re-add ARM64 cross-compilation tools setup
- Improve output messages to distinguish auto-detected vs specified targets
Fixes the P0 issue where aarch64-unknown-linux-gnu builds failed because
the script built x86_64 binaries while tarball step expected aarch64.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammario
ammario merged commit cb5c602 into mainOct 3, 2025
6 checks passed
@ammario
ammario deleted the static-link branch October 3, 2025 15:28
@ammarioammario mentioned this pull request Oct 3, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ammario
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' build: use static glibc linking for Linux releases by ammario · Pull Request #76 · coder/httpjail · GitHub
Skip to content

build: use static glibc linking for Linux releases - #76

Merged
ammario merged 2 commits into
mainfrom
static-link
Oct 3, 2025
Merged

build: use static glibc linking for Linux releases#76
ammario merged 2 commits into
mainfrom
static-link

Conversation

@ammario

@ammarioammario commented Oct 3, 2025

Copy link
Copy Markdown
Member

Summary

Implements static linking for Linux releases to improve portability across different Linux distributions.

Problem

Current Linux releases use dynamic linking, which means:

  • Binaries may not work on systems with older or different glibc versions
  • Users need compatible system libraries installed
  • Distribution compatibility is limited

Solution

Use static glibc linking with the gnu target and crt-static flag:

  • Binaries are fully statically linked using static-pie
  • Works across a wide range of Linux distributions (glibc 2.17+)
  • V8 prebuilt binaries are available for gnu targets (musl not supported by V8)

Changes

  • Update build.rs to configure -static-libgcc for Linux gnu targets
  • Add scripts/build-static.sh for building with RUSTFLAGS="-C target-feature=+crt-static"
  • Update release workflow to build static binaries for Linux targets
  • Remove ARM64 cross-compilation setup (now handled by build script)

Testing

Verified on ci-1 (Debian 12, glibc 2.36):

  • ✅ Binary is fully statically linked (static-pie)
  • ✅ Binary size: 52M unstripped / 39M stripped
  • ✅ Works on Ubuntu 18.04 (glibc 2.27)
  • ✅ Works on CentOS 7 (glibc 2.17)
  • ✅ Fast builds using V8 prebuilt binaries
$ file httpjail
httpjail: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), static-pie linked, for GNU/Linux 3.2.0, not stripped
$ ldd httpjail
statically linked

Benefits

  1. Portability: Works on Linux systems from 2014+ (glibc 2.17+)
  2. Build speed: Uses V8 prebuilt binaries (no lengthy source compilation)
  3. Simplicity: Single binary works across distributions
  4. Size: Minimal overhead (52M total, 39M stripped)

Note on musl

We use gnu (glibc) instead of musl because V8 doesn't provide prebuilt musl binaries and building V8 from source for musl is not currently feasible.

🤖 Generated with Claude Code

Switches Linux releases from musl to static glibc (gnu) targets with crt-static.
This change is necessary because V8 doesn't provide prebuilt musl binaries and
building V8 from source for musl fails with 404 errors on dependency downloads.
Changes:
- Update build.rs to configure static-libgcc for Linux gnu targets
- Add scripts/build-static.sh for building with RUSTFLAGS crt-static
- Update release workflow to use x86_64/aarch64-unknown-linux-gnu targets
- Remove musl build script and ARM64 cross-compilation setup
Benefits:
- Fully statically linked binaries (static-pie) for excellent portability
- Tested working on Ubuntu 18.04 (glibc 2.27) and CentOS 7 (glibc 2.17)
- Binary size: 52M unstripped / 39M stripped (comparable to dynamic builds)
- Fast builds using V8 prebuilt binaries (no 20-30min source compilation)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammarioammario changed the title build: use static glibc linking for Linux releases instead of muslbuild: use static glibc linking for Linux releasesOct 3, 2025

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment threadscripts/build-static.sh Outdated
The build script determined target solely from uname -m, causing
ARM64 builds on x86_64 runners to produce wrong architecture binaries.
Changes:
- Update build-static.sh to accept target as argument
- Pass matrix.target from workflow to build script
- Re-add ARM64 cross-compilation tools setup
- Improve output messages to distinguish auto-detected vs specified targets
Fixes the P0 issue where aarch64-unknown-linux-gnu builds failed because
the script built x86_64 binaries while tarball step expected aarch64.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammario
ammario merged commit cb5c602 into mainOct 3, 2025
6 checks passed
@ammario
ammario deleted the static-link branch October 3, 2025 15:28
@ammarioammario mentioned this pull request Oct 3, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ammario
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); build: use static glibc linking for Linux releases by ammario · Pull Request #76 · coder/httpjail · GitHub
Skip to content

build: use static glibc linking for Linux releases - #76

Merged
ammario merged 2 commits into
mainfrom
static-link
Oct 3, 2025
Merged

build: use static glibc linking for Linux releases#76
ammario merged 2 commits into
mainfrom
static-link

Conversation

@ammario

@ammarioammario commented Oct 3, 2025

Copy link
Copy Markdown
Member

Summary

Implements static linking for Linux releases to improve portability across different Linux distributions.

Problem

Current Linux releases use dynamic linking, which means:

  • Binaries may not work on systems with older or different glibc versions
  • Users need compatible system libraries installed
  • Distribution compatibility is limited

Solution

Use static glibc linking with the gnu target and crt-static flag:

  • Binaries are fully statically linked using static-pie
  • Works across a wide range of Linux distributions (glibc 2.17+)
  • V8 prebuilt binaries are available for gnu targets (musl not supported by V8)

Changes

  • Update build.rs to configure -static-libgcc for Linux gnu targets
  • Add scripts/build-static.sh for building with RUSTFLAGS="-C target-feature=+crt-static"
  • Update release workflow to build static binaries for Linux targets
  • Remove ARM64 cross-compilation setup (now handled by build script)

Testing

Verified on ci-1 (Debian 12, glibc 2.36):

  • ✅ Binary is fully statically linked (static-pie)
  • ✅ Binary size: 52M unstripped / 39M stripped
  • ✅ Works on Ubuntu 18.04 (glibc 2.27)
  • ✅ Works on CentOS 7 (glibc 2.17)
  • ✅ Fast builds using V8 prebuilt binaries
$ file httpjail
httpjail: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), static-pie linked, for GNU/Linux 3.2.0, not stripped
$ ldd httpjail
statically linked

Benefits

  1. Portability: Works on Linux systems from 2014+ (glibc 2.17+)
  2. Build speed: Uses V8 prebuilt binaries (no lengthy source compilation)
  3. Simplicity: Single binary works across distributions
  4. Size: Minimal overhead (52M total, 39M stripped)

Note on musl

We use gnu (glibc) instead of musl because V8 doesn't provide prebuilt musl binaries and building V8 from source for musl is not currently feasible.

🤖 Generated with Claude Code

Switches Linux releases from musl to static glibc (gnu) targets with crt-static.
This change is necessary because V8 doesn't provide prebuilt musl binaries and
building V8 from source for musl fails with 404 errors on dependency downloads.
Changes:
- Update build.rs to configure static-libgcc for Linux gnu targets
- Add scripts/build-static.sh for building with RUSTFLAGS crt-static
- Update release workflow to use x86_64/aarch64-unknown-linux-gnu targets
- Remove musl build script and ARM64 cross-compilation setup
Benefits:
- Fully statically linked binaries (static-pie) for excellent portability
- Tested working on Ubuntu 18.04 (glibc 2.27) and CentOS 7 (glibc 2.17)
- Binary size: 52M unstripped / 39M stripped (comparable to dynamic builds)
- Fast builds using V8 prebuilt binaries (no 20-30min source compilation)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammarioammario changed the title build: use static glibc linking for Linux releases instead of muslbuild: use static glibc linking for Linux releasesOct 3, 2025

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment threadscripts/build-static.sh Outdated
The build script determined target solely from uname -m, causing
ARM64 builds on x86_64 runners to produce wrong architecture binaries.
Changes:
- Update build-static.sh to accept target as argument
- Pass matrix.target from workflow to build script
- Re-add ARM64 cross-compilation tools setup
- Improve output messages to distinguish auto-detected vs specified targets
Fixes the P0 issue where aarch64-unknown-linux-gnu builds failed because
the script built x86_64 binaries while tarball step expected aarch64.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
@ammario
ammario merged commit cb5c602 into mainOct 3, 2025
6 checks passed
@ammario
ammario deleted the static-link branch October 3, 2025 15:28
@ammarioammario mentioned this pull request Oct 3, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ammario