[foreign] libEndianTest fails on windows

Jorn Vernee jbvernee at xs4all.nl
Fri Mar 1 16:28:14 UTC 2019


This actually fixes the test. The missing lib is include with that 
`#pragma comment(lib, ...)` (didn't know that that existed).

So, should probably push this as well to turn on the test in Windows?

Jorn

Maurizio Cimadamore schreef op 2019-03-01 17:23:
> Already pushed something like that, but also had to disable the
> header, to prevent warnings and compilation errors from breaking the
> build.
> 
> Maurizio
> 
> On 01/03/2019 16:11, Henry Jen wrote:
>> Uh, I know why, I didn’t merge the patch back in to my main laptop.
>> 
>> Here is the webrev[1] fix the issue.
>> 
>> [1] http://cr.openjdk.java.net/~henryjen/panama/8219975/webrev/
>> 
>> Cheers,
>> Henry
>> 
>> 
>>> On Mar 1, 2019, at 7:48 AM, Henry Jen <henry.jen at oracle.com> wrote:
>>> 
>>> 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