[foreign] libEndianTest fails on windows

Henry Jen henry.jen at oracle.com
Fri Mar 1 15:48:35 UTC 2019


It’s odd, I did a test before the first patch, and not remember I modify this test after…

Sorry for the inconvenience, I’ll take a look.

Cheers,
Henry

> On Mar 1, 2019, at 5:24 AM, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
> 
> 
> On 01/03/2019 13:16, Jorn Vernee wrote:
>> Can confirm. The fix for that is to move the stdint.h include outside of the compiler switch block. Also, the return type of the declared functions needs to be `long long` or unint64_t to avoid lossy conversion warnings.
>> 
>> But! Even after that the linker is choking on a missing library dependency:
>> 
>>     libEndianTest.obj : error LNK2019: unresolved external symbol __imp_htonl referenced in function calc
>> 
>> To fix that would probably take some build system tinkering :/
>> 
>> Maybe we can re-write the test without the dependency?
> 
> I got to the same place, and then I gave up. I need to be able to build/test on all platforms, so I will shortly submit a webrev which disables the test on Win.
> 
> We can rewrite the test at some later point.
> 
> Maurizio
> 
>> 
>> Jorn
>> 
>> Maurizio Cimadamore schreef op 2019-03-01 12:19:
>>> Hi,
>>> The new endianness tests fails on windows platform:
>>> 
>>> === Output from failing command(s) repeated here ===
>>> jib > * For target
>>> support_test_jdk_jtreg_native_support_libEndianTest_libEndianTest.obj:
>>> jib > libEndianTest.c
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(43):
>>> error C2061: syntax error: identifier 'uint16_t'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(44):
>>> error C2061: syntax error: identifier 'hl'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(44):
>>> error C2059: syntax error: ';'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(45):
>>> error C2061: syntax error: identifier 'hll'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(45):
>>> error C2059: syntax error: ';'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(46):
>>> error C2059: syntax error: '}'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(47):
>>> error C2061: syntax error: identifier 'ns'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(47):
>>> error C2059: syntax error: ';'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(48):
>>> error C2061: syntax error: identifier 'nl'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(48):
>>> error C2059: syntax error: ';'
>>> jib >
>>> t:/workspace/open/test/jdk/java/foreign/types/libEndianTest.c(49):
>>> error C2061: syntax error: identifier 'nll'
>>> jib >    ... (rest of output omitted)
>>> 
>>> I think it's an issue with stdint.h not being included...
>>> 
>>> Maurizio



More information about the panama-dev mailing list