Skip to content

Conversation

@benlorenz
Copy link
Contributor

No description provided.

@benlorenz
Copy link
Contributor Author

Julia nightly fails to build on i686 (windows + linux) for crc32c.dbg.obj:

[09:25:14] /workspace/srcdir/julia/src/crc32c.c: In function 'crc32c_sse42':
[09:25:14] /workspace/srcdir/julia/src/crc32c.c:117:13: error: 'asm' operand has impossible constraints
[09:25:14]   117 |             __asm__(CRC32_PTR "\t" "(%3), %0\n\t"
[09:25:14]       |             ^~~~~~~
[09:25:14] /workspace/srcdir/julia/src/crc32c.c:140:13: error: 'asm' operand has impossible constraints
[09:25:14]   140 |             __asm__(CRC32_PTR "\t" "(%3), %0\n\t"
[09:25:14]       |             ^~~~~~~
[09:25:14] make[1]: *** [Makefile:236: crc32c.dbg.obj] Error 1

Building that code locally with clang I get a better error:

test.c:87:21: error: inline assembly requires more registers than available
            __asm__(CRC32_PTR "\t" "(%3), %0\n\t"
                    ^
test.c:58:23: note: expanded from macro 'CRC32_PTR'
#    define CRC32_PTR "crc32l"
                      ^
test.c:110:21: error: inline assembly requires more registers than available
            __asm__(CRC32_PTR "\t" "(%3), %0\n\t"
                    ^
test.c:58:23: note: expanded from macro 'CRC32_PTR'
#    define CRC32_PTR "crc32l"
                      ^
2 errors generated.

So the new crc32 code from JuliaLang/julia#52326 runs out of registers on i686 with -O0. Using -O1 or -fomit-frame-pointer would help but make the debuginfo worse. Interestingly -O1 -fno-omit-frame-pointer would also work.

@giordano
Copy link
Member

giordano commented Dec 5, 2023

Any clue of why that wasn't caught by CI?

@benlorenz
Copy link
Contributor Author

There is probably no i686 debug build?

@benlorenz benlorenz marked this pull request as draft December 11, 2023 08:20
@fingolfin
Copy link
Member

This builds now with the crc32 patch, great!. Since that patch doesn't affect the ABI, can't we just merge this PR now so we can finally update all the other JLLs depending on this? We can drop the crc32 later once it (or some other fix) is merged into Julia master.

@benlorenz benlorenz marked this pull request as ready for review December 11, 2023 16:34
@benlorenz benlorenz merged commit 6ceb2cc into JuliaPackaging:master Dec 11, 2023
@benlorenz benlorenz deleted the bl/libjulia branch December 11, 2023 20:19
vtjnash pushed a commit to JuliaLang/julia that referenced this pull request Dec 13, 2023
grasph pushed a commit to Moelf/Yggdrasil that referenced this pull request Jul 1, 2024
…uliaPackaging#7757)

* [libjulia] bump nightly for jl_alloc_array_*, update to 1.10.0-rc2

* use patch from JuliaLang/julia#52437 for i686 builds
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.

3 participants