add reloc type R_KEEP #320
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: goloader Testing | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
build: | |
env: | |
GOPATH: ${{ github.workspace }} | |
GO111MODULE: auto | |
strategy: | |
fail-fast: false | |
matrix: | |
go-second-version: [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21] | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
exclude: | |
- os: macos-latest | |
go-second-version: 8 | |
- os: macos-latest | |
go-second-version: 9 | |
- os: macos-latest | |
go-second-version: 10 | |
include: | |
- os: macos-11 | |
go-second-version: 8 | |
- os: macos-11 | |
go-second-version: 9 | |
- os: macos-11 | |
go-second-version: 10 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: 1.${{ matrix.go-second-version }}.x | |
- name: Rename cmd/internal | |
shell: sh | |
run: | |
cp -r `go env GOROOT`/src/cmd/internal `go env GOROOT`/src/cmd/objfile | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
path: ${{ env.GOPATH }}/src/github.com/${{ github.repository }} | |
- name: Build | |
run: | |
go build github.com/pkujhd/goloader/examples/loader | |
- name: Compile const.go | |
shell: sh | |
run: | | |
if [ ${{ matrix.go-second-version }} -ge 20 ]; then | |
go list -export -f '{{if .Export}}packagefile {{.ImportPath}}={{.Export}}{{end}}' std `go list -f {{.Imports}} $GOPATH/src/github.com/pkujhd/goloader/examples/const/const.go | awk '{sub(/^\[/, ""); print }' | awk '{sub(/\]$/, ""); print }'` > importcfg | |
go tool compile -importcfg importcfg $GOPATH/src/github.com/pkujhd/goloader/examples/const/const.go | |
else | |
go tool compile $GOPATH/src/github.com/pkujhd/goloader/examples/const/const.go | |
fi | |
- name: Compile base.go | |
shell: sh | |
run: | | |
if [ ${{ matrix.go-second-version }} -ge 20 ]; then | |
go list -export -f '{{if .Export}}packagefile {{.ImportPath}}={{.Export}}{{end}}' std `go list -f {{.Imports}} $GOPATH/src/github.com/pkujhd/goloader/examples/base/base.go | awk '{sub(/^\[/, ""); print }' | awk '{sub(/\]$/, ""); print }'` > importcfg | |
go tool compile -importcfg importcfg $GOPATH/src/github.com/pkujhd/goloader/examples/base/base.go | |
else | |
go tool compile $GOPATH/src/github.com/pkujhd/goloader/examples/base/base.go | |
fi | |
- name: Test base.o | |
run: | |
./loader -o base.o -run main.main | |
- name: Test const.o | |
run: | |
./loader -o const.o -run main.main |