RFR: JDK-8075140: Solaris build of native libraries not consistently using EXTRA_CFLAGS and EXTRA_LDFLAGS
Erik Joelsson
erik.joelsson at oracle.com
Mon Mar 16 08:26:52 UTC 2015
On 2015-03-14 01:08, David Holmes wrote:
> Hi Erik,
>
> On 14/03/2015 12:08 AM, Erik Joelsson wrote:
>> Hello,
>>
>> While working on the new Hotspot makefiles in build-infra I noticed this
>> problem. When introducing devkits for Solaris, we rely on the variables
>> EXTRA_CFLAGS, EXTRA_CXXFLAGS and EXTRA_LDFLAGS to propagate the SYSROOT
>> specific flags into the hotspot build. However, these flags aren't
>> consistently used in the Hotspot build for all the native libraries.
>>
>> This patch adds the variables to all missing compile and link command
>> lines. It also fixes an issue with saproc.so where the debug info was
>> created off one of the object files instead of the library.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8075140
>> Webrev: http://cr.openjdk.java.net/~erikj/8075140/webrev.hotspot.01/
>
> For linux we primarily (only?) use these to pass cross-compilation
> flags and so everything that is compiled generally needs the same flags.
>
> Outside of cross-compilation though that doesn't necessarily hold. If
> someone uses EXTRA_CFLAGS as a general customization mechanism it
> might only be intended for the primary VM build not for secondary
> libraries like jsig, dtrace and SA.
>
> So I'm not sure that this is the right thing to do as really these
> variables are not quite what people might expect them to be. In
> general local customizations are better handled by local editing of
> the appropriate build file.
>
Well, the devkit/sysroot CFLAGS and LDFLAGS should be considered more or
less equal to cross compilation arguments. Everything being compiled for
the target platform should use them. If EXTRA_CFLAGS is not a good
option for providing these compiler options, then it shouldn't be used
for cross compilation on linux either. I figured that since we are
already using them that way on linux, extending that usage to Solaris
would be the right thing to do. If it isn't, should I define a new set
of variables for transporting these options for both platforms instead?
I still think using EXTRA_*FLAGS is a viable solution for my usecase and
that anyone trying to use these variables and expecting them to only
apply selectively is on a slippery slope.
/Erik
> David
>
>> /Erik
More information about the build-dev
mailing list