Skip to content

darwin.system_cmds: fix build with clang 16#235487

Merged
toonn merged 1 commit intoNixOS:stagingfrom
reckenrode:system_cmds-clang-fix
Jun 11, 2023
Merged

darwin.system_cmds: fix build with clang 16#235487
toonn merged 1 commit intoNixOS:stagingfrom
reckenrode:system_cmds-clang-fix

Conversation

@reckenrode
Copy link
Copy Markdown
Contributor

@reckenrode reckenrode commented Jun 2, 2023

Description of changes

Clang 16 makes implicit declarations an error by default. The headers
are available, so include them.

getline was renamed to get_line to avoid a name clash. util.h
includes stdio.h, which defines getline.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.11 Release Notes (or backporting 23.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

@ofborg ofborg bot added the 6.topic: darwin Running or building packages on Darwin label Jun 2, 2023
@ofborg ofborg bot requested review from matthewbauer and shlevy June 2, 2023 04:06
@ofborg ofborg bot added 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. labels Jun 2, 2023
@reckenrode reckenrode force-pushed the system_cmds-clang-fix branch from 1c24fe0 to a00b4d6 Compare June 10, 2023 21:09
Clang 16 makes implicit declarations an error by default. The headers
are available, so include them.

`getline` was renamed to `get_line` to avoid a name clash. `util.h`
includes `stdio.h`, which defines `getline`.
@reckenrode reckenrode force-pushed the system_cmds-clang-fix branch from a00b4d6 to cd4ab1d Compare June 10, 2023 21:15
Copy link
Copy Markdown
Contributor

@toonn toonn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, testing this by passing -Werror=strict-prototypes I get a ton more locations that need to be patched. This wasn't the case with Clang 16? I wonder why.

0001-Fix-implicit-declarations.patch.txt

Copy link
Copy Markdown
Contributor

@toonn toonn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was enabling the wrong warning as error, should've been implicit-function-declaration >.<

LGTM now!

@toonn toonn merged commit b7ed52e into NixOS:staging Jun 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: darwin Running or building packages on Darwin 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants