Skip to content
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

Use byteswap.h when building against musl libc #8503

Merged
merged 1 commit into from
Apr 16, 2021

Conversation

georgthegreat
Copy link
Contributor

Though manpages say bswap_ macros are GNU extensions, both bionic libc and musl libc provide them from the very first releases.

As musl intentionally does not define any specific macro, I suggest changing ifdefs to be based on operating systems rather than on libc's.

@google-cla google-cla bot added the cla: yes label Apr 16, 2021
@acozzette acozzette merged commit f763a2a into protocolbuffers:master Apr 16, 2021
@acozzette
Copy link
Member

Thanks, @georgthegreat.

@georgthegreat
Copy link
Contributor Author

georgthegreat commented Apr 17, 2021

Thanks, @acozzette.
As a follow up, I'd like to add a snippet illustrating the problem being fixed.
Whenever a source is dependent on both byteswap.h and protobuf, the following error will occur:

byteswap.h:22:9: error: 'bswap_16' macro redefined [-Werror,-Wmacro-redefined]
#define bswap_16(x) __bswap_16(x)
        ^
google/protobuf/stubs/port.h:321:9: note: previous definition is here
#define bswap_16(x) bswap_16(x)
        ^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants