-
-
Notifications
You must be signed in to change notification settings - Fork 14k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gpsd: fix cross-compilation #182175
Merged
Merged
gpsd: fix cross-compilation #182175
Conversation
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
This comment was marked as duplicate.
This comment was marked as duplicate.
bjornfor
reviewed
Jul 20, 2022
bjornfor
added
the
6.topic: cross-compilation
Building packages on a different platform than they will be used on
label
Jul 20, 2022
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as resolved.
This comment was marked as resolved.
|
This comment was marked as duplicate.
This comment was marked as duplicate.
ghost
requested a review
from bjornfor
July 28, 2022 20:47
sorki
approved these changes
Aug 14, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lovely! Thank you! I've wasted many hours trying to fix this.
smancill
requested changes
Aug 15, 2022
ghost
marked this pull request as draft
August 19, 2022 05:41
ghost
marked this pull request as ready for review
August 19, 2022 05:41
ghost
requested review from
smancill
and removed request for
bjornfor and
rasendubi
August 19, 2022 05:41
I have updated the commit message. |
Prior to this commit, builds of `pkgsCross.*.gpsd` were failing. `gpsd` expects `CCVERSION` to be set, and fails if it is not set. Scons does not guarantee that `CCVERSION` will be set, nor does it specify under what circumstances it will or will not be set: "This may or may not be set, depending on the specific C compiler being used." https://scons.org/doc/production/HTML/scons-man.html#cv-CCVERSION Apparently cross-compilation triggers one of those unspecified circumstances. There are several bug reports to scons relating to this: SCons/scons#1723 https://github.com/SCons/scons/issues?q=is%3Aissue+ccversion+is%3Aclosed `gpsd` does not use `CCVERSION` for any purpose other than printing a log message at the start of the build: https://gitlab.com/gpsd/gpsd/-/commit/d0558636038e18d90eb886f668ff5004538f7839 This commit modifies the log message, replacing `env['CCVERSION']` with `env['CC']`, since `CC` is always set when using nixpkgs' standard builder. With this commit, `pkgsCross.mips64el-linux-gnuabi64.gpsd` and `pkgsCross.powernv.gpsd` build correctly on x86_64. Prior to this commit, they would fail with: ``` scons: Reading SConscript files ... scons version: 4.1.0 scons is running under Python version: 3.10.5.final.0 gpsd version: 3.23.1 This system is: linux KeyError: 'CCVERSION': File "/build/gpsd-3.23.1/SConstruct", line 69: SConscript('SConscript', File "/nix/store/0vmqv6f2s8bj2a50gk8g05jcb5scnifb-scons-4.1.0/lib/python3.10/site-packages/SCons/Script/SConscript.py", line 654: return method(*args, **kw) File "/nix/store/0vmqv6f2s8bj2a50gk8g05jcb5scnifb-scons-4.1.0/lib/python3.10/site-packages/SCons/Script/SConscript.py", line 591: return _SConscript(self.fs, *files, **subst_kw) File "/nix/store/0vmqv6f2s8bj2a50gk8g05jcb5scnifb-scons-4.1.0/lib/python3.10/site-packages/SCons/Script/SConscript.py", line 280: exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals) File "/build/gpsd-3.23.1/gpsd-3.23.1/SConscript", line 883: announce("cc is %s, version %s" % (env['CC'], env['CCVERSION'])) File "/nix/store/0vmqv6f2s8bj2a50gk8g05jcb5scnifb-scons-4.1.0/lib/python3.10/site-packages/SCons/Environment.py", line 388: return self._dict[key] ```
bjornfor
approved these changes
Aug 19, 2022
ghost
deleted the
pr/gpsd/fix-cross
branch
August 19, 2022 17:25
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
6.topic: cross-compilation
Building packages on a different platform than they will be used on
8.has: package (new)
10.rebuild-darwin: 1-10
10.rebuild-linux: 11-100
12.approvals: 1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes
Builds of
pkgsCross.*.gpsd
currently fail with:The derivation already includes a patch that fiddles with the
env
array; this might have something to do with it.Fortunately
CCVERSION
is never used for anything other than printing during the build. So we can replaceCCVERSION
withCC
.With this commit,
pkgsCross.mips64el-linux-gnuabi64.gpsd
andpkgsCross.powernv.gpsd
build correctly on x86_64.Things done
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)