Environment variable with a hyphen is dropped in ubuntu
#2 288 ouverte le 20 avr. 2023
Métriques du dépôt
- Stars
- (10 194 stars)
- Métriques de merge PR
- (Merge moyen 39j 3h) (10 PRs mergées en 30 j)
Description
Feel free to close this as invalid, the bug is likely not in ninja, as it looks like ninja simply does a posix_spawn to launch a process without modifying the environment. Though interestingly I could not reproduce the issue without ninja (tried my own wrapper that does posix_spawn etc), so opening it here as someone else might have experienced the same issue.
populate buid.ninja with
rule environ
command = env
build env.txt: environ
Run ninja with command:
env - FOO_bar=1 FOO_baz-baz=2 ninja
Expected output from env should include both FOO_bar and FOO_baz-baz variables, but on some systems you will only see the variable without hyphen in the name, those with hyphen are dropped somewhere.
So far I've tested: Ubuntu: Buggy Linux Mint: Buggy Fedora: Works Fine Arch: works Fine
I've also debugged by making ninja printing environ just before doing posix_spawn and I can see the variable FOO_baz-baz there, it just isn't visible in the launched process.
My guess is that ubuntu glibc does something wrong somewhere, but I couldn't find it