1. compiling 4.1 ?
- Posted by BRyan Apr 22, 2014
- 1937 views
"Missing required architecture macros."
Where do you set the X86 architecture ?
2. Re: compiling 4.1 ?
- Posted by jimcbrown (admin) Apr 22, 2014
- 1918 views
"Missing required architecture macros."
Where do you set the X86 architecture ?
config.gnu - but that should have been done automatically by the configure bash shell script.
I don't understand why we even have that line in be_callc.c - we're using the C-only callc on everything but x86, and the C-only callc should work on x86 in theory as well. So, why do we even care if the macros are there or not?
3. Re: compiling 4.1 ?
- Posted by mattlewis (admin) Apr 23, 2014
- 1934 views
"Missing required architecture macros."
Where do you set the X86 architecture ?
config.gnu - but that should have been done automatically by the configure bash shell script.
I don't understand why we even have that line in be_callc.c - we're using the C-only callc on everything but x86, and the C-only callc should work on x86 in theory as well. So, why do we even care if the macros are there or not?
There are still architecture related implementation details for the C-only interfaces. IIRC, this was done because there might be places where things would compile but not work without them, or possibly just a matter of providing a clearer error message than some random line failing due to a missing declaration or whatever.
Matt
4. Re: compiling 4.1 ?
- Posted by jimcbrown (admin) Apr 23, 2014
- 1929 views
There are still architecture related implementation details for the C-only interfaces. IIRC, this was done because there might be places where things would compile but not work without them, or possibly just a matter of providing a clearer error message than some random line failing due to a missing declaration or whatever.
Ouch. Ok, that makes sense. The goal of the C-only callc interface was to provide a single implementation that would have been portable across multiple platforms and architectures, in order to reduce the burden of porting Euphoria's runtime to a new platform/arch. That goal is still met, but I guess it was too much to hope that it'd work with zero changes to a new platform. Oh well.
5. Re: compiling 4.1 ?
- Posted by mattlewis (admin) Apr 23, 2014
- 1925 views
Ouch. Ok, that makes sense. The goal of the C-only callc interface was to provide a single implementation that would have been portable across multiple platforms and architectures, in order to reduce the burden of porting Euphoria's runtime to a new platform/arch. That goal is still met, but I guess it was too much to hope that it'd work with zero changes to a new platform. Oh well.
The real problems, IIRC, come from dealing with passing floating point arguments. When everything goes on the stack (e.g., x86) it's easy. But all of our new platforms (x86-64, ARM) use registers in various ways, and 64-bit Windows does things differently that 64-bit non-Windows (or course). Writing all this in C is a lot easier (IMHO) than writing it in platform specific ASM, but it's still tricky to get it all correct.
Matt
6. Re: compiling 4.1 ?
- Posted by BRyan Apr 23, 2014
- 1875 views
When I tried to compile 4.1 on xp using Open Watcom the architecture error caused compile to fail.
Why isn't the architecture option in configure.bat ?
7. Re: compiling 4.1 ?
- Posted by mattlewis (admin) Apr 23, 2014
- 1975 views
When I tried to compile 4.1 on xp using Open Watcom the architecture error caused compile to fail.
Why isn't the architecture option in configure.bat ?
We're planning on removing Watcom support in 4.1 (weren't we?).
Matt
8. Re: compiling 4.1 ?
- Posted by jimcbrown (admin) May 11, 2014
- 1794 views
When I tried to compile 4.1 on xp using Open Watcom the architecture error caused compile to fail.
Why isn't the architecture option in configure.bat ?
We're planning on removing Watcom support in 4.1 (weren't we?).
Matt
A vote was taken on this issue, and the result was to remove it. http://openeuphoria.org/forum/119651.wc
No one has actually taken responsibility for removing the code though, so it's still in there, but bitrotting (and, as BRyan and SDPringle have pointed out, already broken).