Skip to content

Commit

Permalink
pam: Introduce pam_debug build tag to generate debug libraries
Browse files Browse the repository at this point in the history
When using this tag on `go build` or `go generate` we:
 - Add more debug symbols to built libraries
 - Enable pedantic checks on data structures used by GDM proto

To achieve this, add a further generate_debug.go file that is only
used when the `pam_debug` tag is used, this now also builds the gdm
code with the `pam_gdm_debug` build tag that implies enabling by
default some checks that are not enabled by default.

Update CI job to ensure this works.
  • Loading branch information
3v1n0 committed Dec 15, 2023
1 parent 67503f3 commit 9f4f56d
Show file tree
Hide file tree
Showing 6 changed files with 128 additions and 4 deletions.
14 changes: 14 additions & 0 deletions .github/workflows/qa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,20 @@ jobs:
run: |
set -eu
go build -tags withexamplebroker ./cmd/authd
- name: Generate PAM module
run: |
set -eu
find pam -name '*.so' -print -delete
go generate -C pam -x
test -e pam/pam_authd.so
test -e pam/go-loader/pam_go_loader.so
- name: Generate PAM module with pam_debug tag
run: |
set -eu
find pam -name '*.so' -print -delete
go generate -C pam -x -tags pam_debug
test -e pam/pam_authd.so
test -e pam/go-loader/pam_go_loader.so
rust-sanity:
name: "Rust: Code sanity"
Expand Down
8 changes: 8 additions & 0 deletions pam/gdm/debug.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
//go:build pam_gdm_debug

package gdm

func init() {
checkMembersFunc = checkMembersDebug
validateJSONFunc = validateJSONDebug
}
4 changes: 2 additions & 2 deletions pam/generate.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//go:build generate
//go:build generate && !pam_debug

//go:generate ./generate.sh -tags !pam_binary_cli
//go:generate ./generate.sh -tags "!pam_binary_cli && !pam_debug"

package main
5 changes: 5 additions & 0 deletions pam/generate_debug.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
//go:build generate && pam_debug

//go:generate env CFLAGS=-g3 CGO_CFLAGS=-g3 ./generate.sh -tags "!pam_binary_cli && pam_debug" -build-tags pam_gdm_debug -output pam_module_debug.go

package main
4 changes: 2 additions & 2 deletions pam/pam_module.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

97 changes: 97 additions & 0 deletions pam/pam_module_debug.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 9f4f56d

Please sign in to comment.