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

build: Don't fail for 32 bit builds because of static_assert check #4006

Merged
merged 1 commit into from
Oct 7, 2023

Conversation

lgritz
Copy link
Collaborator

@lgritz lgritz commented Oct 7, 2023

A static_assert was added recently as part of PR #3898, which assures that the size of a TileID is a multiple of 8 bytes. But on architectures with 32 bit pointers, this assertion fails. Which is not quite what we want, because the code isn't wrong if the struct isn't a multiple of 8 bytes; it's just less efficient. And we don't want to fail for 32 bit arch.

Bottom line: only do this check to ensure we're in the most efficient case if we're 64 bits. Nobody's expecting highest performance on a 32 bit machine anyway.

Fixes #4001

A static_assert was added recently as part of PR 3898, which assures
that the size of a TileID is a multiple of 8 bytes. But on
architectures with 32 bit pointers, this assertion fails. Which is not
quite what we want, because the code isn't wrong if the struct isn't a
multiple of 8 bytes; it's just less efficient. And we don't want to
fail for 32 bit arch.

Bottom line: only do this check to ensure we're in the most efficient
case if we're 64 bits. Nobody's expecting highest performance on a 32
bit machine anyway.

Signed-off-by: Larry Gritz <lg@larrygritz.com>
@hobbes1069
Copy link
Contributor

Thanks!

@lgritz lgritz merged commit 41a192b into AcademySoftwareFoundation:master Oct 7, 2023
23 of 25 checks passed
@lgritz lgritz deleted the lg-32bit branch October 7, 2023 21:36
lgritz added a commit to lgritz/OpenImageIO that referenced this pull request Oct 7, 2023
…cademySoftwareFoundation#4006)

A static_assert was added recently as part of PR AcademySoftwareFoundation#3898, which assures
that the size of a TileID is a multiple of 8 bytes. But on architectures
with 32 bit pointers, this assertion fails. Which is not quite what we
want, because the code isn't wrong if the struct isn't a multiple of 8
bytes; it's just less efficient. And we don't want to fail for 32 bit
arch.

Bottom line: only do this check to ensure we're in the most efficient
case if we're 64 bits. Nobody's expecting highest performance on a 32
bit machine anyway.

Fixes AcademySoftwareFoundation#4001

Signed-off-by: Larry Gritz <lg@larrygritz.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] OIIO 2.5.4 Build failure on Fedora 32bit
2 participants