RFR: 8220784: hsdis cannot be built with MinGW64
David Holmes
david.holmes at oracle.com
Wed Mar 20 06:18:49 UTC 2019
On 20/03/2019 4:03 pm, Yasumasa Suenaga wrote:
> Hi David,
>
> 2019年3月20日(水) 14:25 David Holmes <david.holmes at oracle.com>:
>>
>> Hi Yasumasa,
>>
>> On 20/03/2019 3:01 pm, Yasumasa Suenaga wrote:
>>> Thanks David!
>>>
>>> I uploaded new webrev.
>>> This change affects Windows only, and I confirmed it works fine for
>>> Linux x64 and MinGW64.
>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8220784/webrev.01/
>>
>> I this is for MINGW only then shouldn't the change be made within this
>> section:
>
> Did you say we should determine with $(MINGW) whether libz.a is added
> to LDFLAGS?
> webrev is here:
> http://cr.openjdk.java.net/~ysuenaga/JDK-8220784/webrev.02/
>
> The code is added to outside of the section you pointed.
>
> $(LIBRARIES) is available after OS-specific code.
> So we need to change like webrev.02 to minimize changes.
Or you could add
LIBRARIES = .../libzip.a
inside the existing MINGW section and then change the external
LIBRARIES = ...
to
LIBRARIES += ...
I'm unclear whether MINGW is only an issue on Linux when building for
Windows or whether also of use on Windows itself?
David
>
> Yasumasa
>
>
>> ## OS = Linux ##
>> ifeq ($(OS),Linux)
>> ifneq ($(MINGW),)
>> LIB_EXT = .dll
>> CPPFLAGS += -I$(TARGET_DIR)/include
>> LDFLAGS += -L$(TARGET_DIR)/lib
>> OS=windows
>> ifneq ($(findstring x86_64-,$(MINGW)),)
>> ARCH=amd64
>> else
>> ARCH=i386
>> endif
>> CC = $(MINGW)-gcc
>> CONFIGURE_ARGS= --host=$(MINGW) --target=$(MINGW)
>> else #linux
>> ?
>>
>> David
>> -----
>>
>>>
>>> Thanks,
>>>
>>> Yasumasa
>>>
>>>
>>> 2019年3月20日(水) 11:25 David Holmes <david.holmes at oracle.com>:
>>>>
>>>> On 20/03/2019 11:54 am, Yasumasa Suenaga wrote:
>>>>> Hi David,
>>>>>
>>>>> 2019年3月20日(水) 10:38 David Holmes <david.holmes at oracle.com>:
>>>>>>
>>>>>> Hi Yasumasa,
>>>>>>
>>>>>> I'm not familar with building hsdis, but if the only currnet problem is
>>>>>> on Windows, why is the fix not restricted to only building on Windows?
>>>>>
>>>>> For Solaris and Linux, -lz is not added to LDFLAGS. I think it means
>>>>> initial committer want to use zlib in binutils.
>>>>> And zlib in binutils will be built implicitly in build phase in binutils.
>>>>>
>>>>>> Otherwise we need people who build hsdis on other platforms to comment
>>>>>> on the appropriateness of the fix.
>>>>>
>>>>> If using different zlib is used by platforms is allowed, I will upload
>>>>> webrev which affects Windows only.
>>>>> What do you think?
>>>>
>>>> That seems preferable/simpler. Then you only need to know that your
>>>> change works for non-MinGW64 environments.
>>>>
>>>> Thanks,
>>>> David
>>>>
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Yasumasa
>>>>>
>>>>>
>>>>>> Thanks,
>>>>>> David
>>>>>>
>>>>>> On 20/03/2019 11:07 am, Yasumasa Suenaga wrote:
>>>>>>> Hi Erik, David,
>>>>>>>
>>>>>>> I checked this change on Linux x64 and MinGW for Windows.
>>>>>>> According to hsdis README, we need to use MinGW cross compiler to
>>>>>>> build hsdis [1]. So I think Cygwin is not required.
>>>>>>>
>>>>>>> I do not have macOS and AIX. So I cannot check this change on them.
>>>>>>>
>>>>>>> BTW is hsdis included Java SE spec?
>>>>>>> hsdis seems not to be included jtreg tests, and it is not contained in
>>>>>>> OpenJDK binaries.
>>>>>>> I think it is allowed even if we lack some test for hsdis if hsdis is
>>>>>>> not required for Java SE.
>>>>>>> If not so, I want sponsor(s) for this change.
>>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Yasumasa
>>>>>>>
>>>>>>>
>>>>>>> [1] http://hg.openjdk.java.net/jdk/jdk/file/ddfb658c8ce3/src/utils/hsdis/README#l91
>>>>>>>
>>>>>>> 2019年3月20日(水) 6:54 David Holmes <david.holmes at oracle.com>:
>>>>>>>>
>>>>>>>> CC'ing hotspot-dev. I agree this needs to be checked on every platform
>>>>>>>> affected. I can't comment on the fix itself.
>>>>>>>>
>>>>>>>> David
>>>>>>>>
>>>>>>>> On 20/03/2019 2:36 am, Erik Joelsson wrote:
>>>>>>>>> I think this needs to be reviewed by at least someone in hotspot who
>>>>>>>>> regularly builds hsdis. I can't really comment on the validity of the
>>>>>>>>> patch as I'm unfamiliar with both hsdis as well as this makefile. Have
>>>>>>>>> you at least verified the build on all the platforms which you affect
>>>>>>>>> with this change (which would be at least Macos, AIX and Windows in a
>>>>>>>>> normal Cygwin VS env)?
>>>>>>>>>
>>>>>>>>> /Erik
>>>>>>>>>
>>>>>>>>> On 2019-03-18 17:56, Yasumasa Suenaga wrote:
>>>>>>>>>> Hi all,
>>>>>>>>>>
>>>>>>>>>> Please review this change:
>>>>>>>>>>
>>>>>>>>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8220784
>>>>>>>>>> webrev: http://cr.openjdk.java.net/~ysuenaga/JDK-8220784/webrev.00/
>>>>>>>>>>
>>>>>>>>>> I attempt to build hsdis for Windows on WSL Ubuntu 18.04 with
>>>>>>>>>> gcc-mingw-w64-x86-64, but I saw error messages that some functions
>>>>>>>>>> which are provided by zlib are unresolved.
>>>>>>>>>> We need to link to zlib.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>>
>>>>>>>>>> Yasumasa
More information about the build-dev
mailing list