Repository navigation
Configure EXEEXT hacks are interfering with AX_C_FLOAT_WORDS_BIGENDIAN #125698
Copy link
Copy link
Closed
Labels
buildThe build process and cross-buildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
We mess up EXEEXT in configure.ac:
Lines 1323 to 1340 in cda0ec8
| AC_MSG_CHECKING([for --with-suffix]) | |
| AC_ARG_WITH([suffix], | |
| [AS_HELP_STRING([--with-suffix=SUFFIX], [set executable suffix to SUFFIX (default is empty, yes is mapped to '.exe')])], | |
| [ | |
| AS_CASE([$with_suffix], | |
| [no], [EXEEXT=], | |
| [yes], [EXEEXT=.exe], | |
| [EXEEXT=$with_suffix] | |
| ) | |
| ], [ | |
| AS_CASE([$ac_sys_system/$ac_sys_emscripten_target], | |
| [Emscripten/browser*], [EXEEXT=.js], | |
| [Emscripten/node*], [EXEEXT=.js], | |
| [WASI/*], [EXEEXT=.wasm], | |
| [EXEEXT=] | |
| ) | |
| ]) | |
| AC_MSG_RESULT([$EXEEXT]) |
This creates problems1, since AX_C_FLOAT_WORDS_BIGENDIAN expects EXEEXT and ac_exeext to be the same. EXEEXT and ac_exeext are set up by AC_PROG_CC:
Line 1026 in cda0ec8
| AC_PROG_CC |
We can mitigate this by:
- setting
ac_exeext=$EXEEXTafter L1340 inconfigure.ac - use another variable than
EXEEXT; for exampleEXE_SUFFIX - other workarounds?
My gut feel regarding these is that I'd really not like to add more EXEEXT hacks, so I'd like to avoid 1). 2) should be ok, given that no-one else are depending on EXEEXT (cc. @hroncok).
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux, macOS, Other
Linked PRs
- gh-125698: Replace EXEEXT with EXE_SUFFIX #125699
- gh-125698: Restore EXEEXT in configure and Make #125758
- gh-125698: Autoconf: Sync EXEEXT and ac_exeext #125995
- [3.13] gh-125698: Autoconf: Sync EXEEXT and ac_exeext (GH-125995) #126006
- [3.12] gh-125698: Autoconf: Sync EXEEXT and ac_exeext (GH-125995) #126007
Footnotes
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
buildThe build process and cross-buildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Activity
erlend-aasland commentedon Oct 18, 2024
cc. @damelang, author of
AX_C_FLOAT_WORDS_BIGENDIAN.erlend-aasland commentedon Oct 18, 2024
Another workaround, could be to move the float checks to before our
EXEEXThacks, but who knows what will break next time.pythongh-125698: Replace EXEEXT with EXE_SUFFIX
hroncok commentedon Oct 18, 2024
I am not entirely sure what's my input here supposed to be.
gh-125698: Replace EXEEXT with EXE_SUFFIX (#125699)
Revert "pythongh-125698: Replace EXEEXT with EXE_SUFFIX (python#125699)"
pythongh-125698: Restore EXEEXT in configure and Make
erlend-aasland commentedon Oct 20, 2024
I just suspected a third-party consumer of our build system would like to receive a heads-up when I proposed a rename of one of the configure/Make variables.
Anyway, as I feared, the renaming broke CI, so I'm reverting it. I suggest instead to amend Dan Amelang's patch to use
ac_exeextiso.EXEEXT.gh-125698: Restore EXEEXT in configure and Make (#125758)
erlend-aasland commentedon Oct 20, 2024
I amended Dan's patch to use
ac_exeextin Codespaces, and can confirm that that approach works for WASI.erlend-aasland commentedon Oct 20, 2024
See python/cpython-devcontainers#30 for a proposed patch.
erlend-aasland commentedon Oct 21, 2024
OTOH, most of the macros in autoconf-archive does actually use
EXEEXT, and notac_exeext, implying that if we should land python/cpython-devcontainers#30, we'd possibly run into a similar issue with another macro at a later point1. Perhaps we should just work around this inconfigure.acby making sureac_exeextis set to the same asEXEEXT.Footnotes
yet another reason to switch to a more modern build system ↩
pythongh-125698: Autoconf: Sync EXEEXT and ac_exeext
pythongh-125698: Autoconf: Sync EXEEXT and ac_exeext
gh-125698: Autoconf: Sync EXEEXT and ac_exeext (#125995)
pythongh-125698: Autoconf: Sync EXEEXT and ac_exeext (pythonGH-125995)
pythongh-125698: Autoconf: Sync EXEEXT and ac_exeext (pythonGH-125995)
erlend-aasland commentedon Oct 26, 2024
Landed on the following solution:
Automerge enabled for the backports. Closing this as completed.
[3.12] gh-125698: Autoconf: Sync EXEEXT and ac_exeext (GH-125995) (#1…
[3.13] gh-125698: Autoconf: Sync EXEEXT and ac_exeext (GH-125995) (#1…
pythongh-125698: Replace EXEEXT with EXE_SUFFIX (python#125699)
pythongh-125698: Restore EXEEXT in configure and Make (python#125758)
pythongh-125698: Autoconf: Sync EXEEXT and ac_exeext (python#125995)