[foreign] libEndianTest fails on windows

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Fri Mar 1 16:37:28 UTC 2019


Sorry, I misread the patch.

I think we should give it a run on our internal test infra, which is the 
one that is used to generate the EA snapshots. If it passes there on a 
machine that does NOT have MSVC installed, ok.

Maurizio

On 01/03/2019 16:28, Jorn Vernee wrote:
> 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