Hello
Please check the updated webrev - 
http://cr.openjdk.java.net/~vkempik/8250876/webrev.02/
Thanks, Vladimir

> 10 авг. 2020 г., в 16:11, Erik Joelsson <erik.joels...@oracle.com> написал(а):
> 
> On 2020-08-10 03:47, Vladimir Kempik wrote:
>> Hello
>> 
>> Renamed the bug to "Fix issues with cross-compile on macos"
>> 
>> Please check updated webrev: 
>> http://cr.openjdk.java.net/~vkempik/8250876/webrev.01/
>> 
>> Adlc is fine with cross-compiling now.
>> 
> While not strictly needed for ADLC, I would like to see BUILD_CC getting the 
> same treatment here for consistency.
> 
> /Erik
> 
>> Regards, Vladimir
>>> 10 авг. 2020 г., в 12:52, Magnus Ihse Bursie 
>>> <magnus.ihse.bur...@oracle.com> написал(а):
>>> 
>>> So, basically, what this patch is about is not so much "preparation for 
>>> aarch64" as "allow cross-compile on macos"?  If I understand you correctly, 
>>> maybe you should rename the bug?
>>> 
>>> /Magnus
>>> 
>>> On 2020-08-04 16:09, Erik Joelsson wrote:
>>>> That's a good find! You are correct in that we haven't cross compiled in 
>>>> any direction involving Macosx before.
>>>> 
>>>> The preferred patch would be a bit more elaborate than that. Ideally we 
>>>> need better control over the toolchain type of the BUILD_* compiler 
>>>> settings. For now, I think just forcing clang/clang++ if BUILD_OS is 
>>>> macosx is good enough.
>>>> 
>>>> /Erik
>>>> 
>>>> On 2020-08-04 07:02, Bernhard Urban-Forster wrote:
>>>>> Good observation David, the change in adlc is just fixing a symptom. The 
>>>>> difference to a regular macOS build is that technically, despite running 
>>>>> on the same machine, it's actually cross compiling due to Rosetta being 
>>>>> the --build=x86_64 system.
>>>>> 
>>>>> Being a cross-compile, we therefore hit this case:
>>>>> https://github.com/openjdk/jdk/blob/b0ceab23dd4176329cbf3a95f21e8e9ac2d8723f/make/autoconf/toolchain.m4#L905-L921
>>>>> 
>>>>> And thus infers `/usr/bin/CC` for CXX.
>>>>> 
>>>>> I guess cross compiling hasn't been a thing on macOS yet. I tried the 
>>>>> following and it passes the adlc build:
>>>>> 
>>>>> --- a/make/autoconf/toolchain.m4
>>>>> +++ b/make/autoconf/toolchain.m4
>>>>> @@ -917,7 +917,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
>>>>>       # find the build compilers in the tools dir, if needed.
>>>>>       UTIL_REQUIRE_PROGS(BUILD_CC, [cl cc gcc])
>>>>>       UTIL_FIXUP_EXECUTABLE(BUILD_CC)
>>>>> -    UTIL_REQUIRE_PROGS(BUILD_CXX, [cl CC g++])
>>>>> +    UTIL_REQUIRE_PROGS(BUILD_CXX, [clang++ cl CC g++])
>>>>>       UTIL_FIXUP_EXECUTABLE(BUILD_CXX)
>>>>>       UTIL_PATH_PROGS(BUILD_NM, nm gcc-nm)
>>>>>       UTIL_FIXUP_EXECUTABLE(BUILD_NM)
>>>>> 
>>>>> Although I'm not sure about its cleanliness :-)
>>>>> 
>>>>> -Bernhard
>>>>> 
>>>>> ________________________________________
>>>>> From: build-dev <build-dev-r...@openjdk.java.net> on behalf of David 
>>>>> Holmes <david.hol...@oracle.com>
>>>>> Sent: Tuesday, August 4, 2020 00:46
>>>>> To: Erik Joelsson; Vladimir Kempik; build-dev
>>>>> Cc: Anton Kozlov; Alexander Ioffe; Andrew Brygin; Andrey Petushkov
>>>>> Subject: Re: RFR: 8250876: Build system preparation to macos on aarch64
>>>>> 
>>>>> On 3/08/2020 10:57 pm, Erik Joelsson wrote:
>>>>>> Hello Vladimir,
>>>>>> 
>>>>>> These changes look innocent enough to me. They aren't actually adding
>>>>>> macosx-aarch64 support, they are just removing two minor (and more
>>>>>> likely OS version related) hurdles from the build. You still have to
>>>>>> provide the actual configuration on the configure command line as is
>>>>>> shown in your example. Before we can call build system support, we would
>>>>>> need configure to automatically setup those flags and add a separate
>>>>>> parameter for the JNF framework. So, given that, I don't think this
>>>>>> change warrants a JEP in itself.
>>>>> Of course this change doesn't warrant a JEP in itself :) My point is
>>>>> that until we have a JEP for the platform that is being targeted then we
>>>>> shouldn't be making changes to provide support for that platform.
>>>>> 
>>>>> That said I didn't actually look at the changes but focused on the
>>>>> larger stated aim, so apologies for that.
>>>>> 
>>>>> The actual changes here are small and not obviously related to
>>>>> supporting macOS-Aarch64. But I'm unclear on this change as it affects
>>>>> all macOS builds:
>>>>> 
>>>>>     42   else ifeq ($(call isBuildOs, macosx), true)
>>>>>     43     ADLC_LDFLAGS := -lc++
>>>>> 
>>>>> if this was fixing a bug as indicated, why do we not see this bug in
>>>>> regular builds?
>>>>> 
>>>>> Thanks,
>>>>> David
>>>>> -----
>>>>> 
>>>>> 
>>>>>> My only complaint is that you revert jib-profiles.js. That file is only
>>>>>> used internally at Oracle. If/when we need it to support macosx-aarch64,
>>>>>> we will provide those changes.
>>>>>> 
>>>>>> I must say I'm happy to see you managed to get a working build
>>>>>> configuration with just this though!
>>>>>> 
>>>>>> /Erik
>>>>>> 
>>>>>> On 2020-08-01 00:24, Vladimir Kempik wrote:
>>>>>>> Hello
>>>>>>> 
>>>>>>> Please review this change for JDK-8250876
>>>>>>> 
>>>>>>> This changeset adds support for macos/aarch64 into build system.
>>>>>>> It will allow to crosscompile for macos/aarch64 using intel mac as well.
>>>>>>> 
>>>>>>> This changeset does NOT address some arm specific issues in the macos
>>>>>>> related code, we plan to do that in s separate commit.
>>>>>>> 
>>>>>>> An example of configure to cross-compile for macos/arm64:
>>>>>>> 
>>>>>>> --with-boot-jdk=/path/to/java/
>>>>>>> --with-build-jdk=/path/to/same/java/as/compiled
>>>>>>> --disable-warnings-as-errors --with-jvm-variants=zero
>>>>>>> --openjdk-target=aarch64-apple-darwin --with-extra-cflags='-arch
>>>>>>> arm64' --with-extra-ldflags='-arch arm64
>>>>>>> -F/Path/To/Folder/Containing/JNF_framework/'
>>>>>>> —with-extra-cxxflags='-arch arm64’
>>>>>>> 
>>>>>>> JNF.framework is missing arm64 part as of next macos release, but
>>>>>>> Apple has opensourced it.
>>>>>>> 
>>>>>>> Fix to adlc were needed due to it using symbols from stdc++ and not
>>>>>>> linking to it, so it fails when doing make images.
>>>>>>> 
>>>>>>> The webrev: 
>>>>>>> https://nam06.safelinks.protection.outlook.com/?url=http:%2F%2Fcr.openjdk.java.net%2F~vkempik%2F8250876%2Fwebrev.00%2F&amp;data=02%7C01%7Cbeurba%40microsoft.com%7C0c8d58d5eb9144e8717f08d837ff3736%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637320916565796801&amp;sdata=HpXJmHXbuawTdExWESK9ssesYTuPTj7N6inXjaHfVaM%3D&amp;reserved=0
>>>>>>> The bug: 
>>>>>>> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.openjdk.java.net%2Fbrowse%2FJDK-8250876&amp;data=02%7C01%7Cbeurba%40microsoft.com%7C0c8d58d5eb9144e8717f08d837ff3736%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637320916565796801&amp;sdata=9z2Nw8d0pa5huxUKOYorMOVy6SBo7o%2FhDT1EmgOhxQ8%3D&amp;reserved=0
>>>>>>> 
>>>>>>> Testing: jdk/submit.
>>>>>>> 
>>>>>>> Thanks, Vladimir.
>> 

Reply via email to