[PATCH] fix zero builds for "unknown" architectures

David Holmes david.holmes at oracle.com
Wed Sep 9 23:59:17 UTC 2015

On 10/09/2015 2:56 AM, Coleen Phillimore wrote:
> I think I like patch #1 better.   I will sponsor it and make sure it
> works on my machine.   Thank you for fixing this on the other platforms.

I think there should be a way to detect an unknown arch via the build 
mechanics. I would think an unknown arch would also impact includes of 
<os>_<arch> headers ... unless the "arch" is Zero in that case? In which 
case maybe we should be checking for Zero here?

Also need to check the ARM versus ARM32 - as with PPC/PPC32/PPC64 I 
think plain ARM means 32-bit or 64-bit, but Aarch64 covers 64-bit.


> Coleen
> On 9/9/15 12:19 PM, Matthias Klose wrote:
>> seen with jdk9 / tag jdk9-b80.  zero builds which don't match one of
>> the hotspot
>> architectures fail to build in src/os/linux/vm/os_linux.cpp, because
>> there is no
>> default / or else clause:
>> const char* search_string = IA32_ONLY("model name") AMD64_ONLY("model
>> name")
>>                              IA64_ONLY("") SPARC_ONLY("cpu")
>>                              ARM32_ONLY("Processor")
>> PPC_ONLY("Processor")
>> AARCH64_ONLY("Processor");
>> and:
>>    strncpy(cpuinfo, IA32_ONLY("x86_32") AMD64_ONLY("x86_32")
>>                     IA64_ONLY("IA64") SPARC_ONLY("sparcv9")
>>                     ARM32_ONLY("ARM") PPC_ONLY("PPC64")
>> AARCH64_ONLY("AArch64"),
>> length);
>> attached are two alternate patches how to fix this, either by not
>> using the
>> *_ONLY macros, or by defining an UNKOWN_ARCH_ONLY macro.
>> Two other issues:
>>   - The zero builds only define ARM, not ARM32, so the clause
>>     should be ARM_ONLY (or at least an ARM_ONLY added).
>>   - The cpuinfo string seems to be wrong for AMD64_ONLY.
>> Verified that zero builds without errors with on of these patches.
>> Attaching both patches.
>>    Matthias

More information about the hotspot-dev mailing list