In pkgsStatic, /all/ build inputs are propagated. This means that netbsd.compat was propagated, along with its setup hook, which broke static glib builds because glib defines a function with the same name as one in nbtool_config.h, and nbtool_config.h was being automatically included in every C file processed by the compiler, in any transitive dependent of netbsd.compat's setup hook. To fix this, rather than forcing nbtool_config.h to be included for _every_ C file in a derivation that depends on netbsd.compat, modify the NetBSD-specific mkDerivation to detect files that need the header, and patch it in there where appropriate. That way, only files that are part of NetBSD will be affected, not all transitive dependents.
6 lines
171 B
Bash
6 lines
171 B
Bash
# See pkgs/build-support/setup-hooks/role.bash
|
|
getHostRole
|
|
|
|
export NIX_LDFLAGS${role_post}+=" -lnbcompat"
|
|
export NIX_CFLAGS_COMPILE${role_post}+=" -DHAVE_NBTOOL_CONFIG_H"
|