mirror of
https://github.com/wavetermdev/waveterm.git
synced 2024-12-21 16:38:23 +01:00
Make musl-gcc from scratch (#828)
This commit is contained in:
parent
84673c945c
commit
e7a510c0d6
12
.github/workflows/build-helper.yml
vendored
12
.github/workflows/build-helper.yml
vendored
@ -37,7 +37,17 @@ jobs:
|
|||||||
if: matrix.platform == 'linux'
|
if: matrix.platform == 'linux'
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install --no-install-recommends -y libarchive-tools libopenjp2-tools rpm squashfs-tools musl
|
sudo apt-get install --no-install-recommends -y libarchive-tools libopenjp2-tools rpm squashfs-tools build-essential
|
||||||
|
|
||||||
|
# We use musl-gcc instead of glibc for cgo compilation as it is more-easily statically linked
|
||||||
|
- name: Setup musl-gcc (Linux only)
|
||||||
|
if: matrix.platform == 'linux'
|
||||||
|
run: |
|
||||||
|
git clone https://git.musl-libc.org/git/musl
|
||||||
|
cd musl
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
|
||||||
# The pre-installed version of the AWS CLI has a segfault problem so we'll install it via Homebrew instead.
|
# The pre-installed version of the AWS CLI has a segfault problem so we'll install it via Homebrew instead.
|
||||||
- name: Upgrade AWS CLI (Mac only)
|
- name: Upgrade AWS CLI (Mac only)
|
||||||
|
25
.github/workflows/codeql.yml
vendored
25
.github/workflows/codeql.yml
vendored
@ -56,13 +56,6 @@ jobs:
|
|||||||
version: 3.x
|
version: 3.x
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Setup Go
|
|
||||||
uses: actions/setup-go@v5
|
|
||||||
with:
|
|
||||||
go-version: stable
|
|
||||||
cache-dependency-path: |
|
|
||||||
go.sum
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: ${{env.NODE_VERSION}}
|
node-version: ${{env.NODE_VERSION}}
|
||||||
@ -71,6 +64,23 @@ jobs:
|
|||||||
corepack enable
|
corepack enable
|
||||||
yarn install
|
yarn install
|
||||||
|
|
||||||
|
- name: Setup Go (Go only)
|
||||||
|
if: matrix.language == 'go'
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: stable
|
||||||
|
cache-dependency-path: |
|
||||||
|
go.sum
|
||||||
|
# We use musl-gcc instead of glibc for cgo compilation as it is more-easily statically linked
|
||||||
|
- name: Setup musl-gcc (Go only)
|
||||||
|
if: matrix.language == 'go'
|
||||||
|
run: |
|
||||||
|
git clone https://git.musl-libc.org/git/musl
|
||||||
|
cd musl
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v3
|
uses: github/codeql-action/init@v3
|
||||||
@ -95,7 +105,6 @@ jobs:
|
|||||||
- name: Build (Go only)
|
- name: Build (Go only)
|
||||||
if: matrix.language == 'go'
|
if: matrix.language == 'go'
|
||||||
run: |
|
run: |
|
||||||
sudo apt update && sudo apt install -y musl
|
|
||||||
task build:server
|
task build:server
|
||||||
task build:wsh
|
task build:wsh
|
||||||
|
|
||||||
|
14
BUILD.md
14
BUILD.md
@ -25,13 +25,23 @@ sudo apt install build-essential zip
|
|||||||
Fedora:
|
Fedora:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo dnf install make automake gcc gcc-c++ kernel-devel
|
sudo dnf install make automake gcc gcc-c++ kernel-devel zip
|
||||||
```
|
```
|
||||||
|
|
||||||
Arch:
|
Arch:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo pacman -S base-devel
|
sudo pacman -S base-devel zip
|
||||||
|
```
|
||||||
|
|
||||||
|
We also require `musl-gcc` for statically linking CGO. Run the following from wherever you keep your source code:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone https://git.musl-libc.org/git/musl
|
||||||
|
cd musl
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Windows
|
#### Windows
|
||||||
|
@ -95,7 +95,7 @@ tasks:
|
|||||||
ARCHS:
|
ARCHS:
|
||||||
sh: echo {{if eq "arm" ARCH}}arm64{{else}}{{ARCH}}{{end}}
|
sh: echo {{if eq "arm" ARCH}}arm64{{else}}{{ARCH}}{{end}}
|
||||||
GO_LDFLAGS: -linkmode 'external' -extldflags=-static
|
GO_LDFLAGS: -linkmode 'external' -extldflags=-static
|
||||||
GO_ENV_VARS: CC=musl-gcc
|
GO_ENV_VARS: CC=/usr/local/musl/bin/musl-gcc
|
||||||
|
|
||||||
build:server:internal:
|
build:server:internal:
|
||||||
requires:
|
requires:
|
||||||
|
Loading…
Reference in New Issue
Block a user