"expr: syntax error" on jdk9/dev build

Volker Simonis volker.simonis at gmail.com
Wed Nov 4 13:35:54 UTC 2015


Thanks for the opening the bug report.

I've triaged it but as I can not push it anyway, I leave the fix for
the interested reader :)


On Wed, Nov 4, 2015 at 12:58 PM, Magnus Ihse Bursie
<magnus.ihse.bursie at oracle.com> wrote:
> Volker,
>
> Thanks for the great analysis! Your trivial fix seems reasonable. I opened
> https://bugs.openjdk.java.net/browse/JDK-8141416 to track this. It's up for
> grabs to add that line. :) (Otherwise I'll fix it when I have the time.)
>
> /Magnus
>
>
> On 2015-11-04 08:49, Volker Simonis wrote:
>>
>> Hi Johnathan,
>>
>> this is a known problem - at least to me :)
>>
>> It is caused by a peculiarity of the gcc version on Ubuntu where "gcc
>> -dumpversion" doesn't print a micro-version:
>>
>> Ubuntu:
>> $ gcc -dumpversion
>> 4.6
>>
>> Any other Linux:
>> $ gcc -dumpversion
>> 4.8.3
>>
>> This "feature" is tracked under
>> https://bugs.launchpad.net/ubuntu/+source/gcc-4.8/+bug/1360404 and has
>> been fixed for gcc 4.9 but won't be fixed for older versions of gcc.
>>
>> In hotspot/make/linux/makefiles/gcc.make we parse the micro-version of
>> gcc and use it in the following way:
>>
>> CC_VER_MICRO := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.'
>> -f3)
>>
>> ifeq ($(shell expr $(CC_VER_MAJOR) = 4 \& $(CC_VER_MINOR) = 1 \&
>> $(CC_VER_MICRO) = 1), 1)
>>    $(error "GCC $(CC_VER_MAJOR).$(CC_VER_MINOR).$(CC_VER_MICRO) not
>> supported because of
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=27724")
>> endif
>>
>> The shell expression results in a syntax error if $(CC_VER_MICRO)
>> because it expaands to something like "expr 4 = 4 & 3 = 1 & = 1"
>>
>> I haven't fixed it until now because it does no harm. The
>> corresponding check is for gcc 4.1.1 but the affected Ubuntu gcc
>> compilers are 4.6, 4.7 and 4.8.
>>
>> A trivial fix would be to set CC_VER_MICRO to "0" by default.
>>
>> Regards,
>> Volker
>>
>>
>> On Tue, Nov 3, 2015 at 10:45 PM, Jonathan Gibbons
>> <jonathan.gibbons at oracle.com> wrote:
>>>
>>> I'm seeing a bunch of "syntax error"s on an otherwise successful build of
>>> jdk9/dev.
>>>
>>> This is on Ubuntu Linux, 14.04.
>>>
>>> Is this a known problem; should I be worried?
>>>
>>> -- Jon
>>>
>>> Creating support/jce/policy/unlimited/US_export_policy.jar
>>> Creating support/jce/policy/limited/local_policy.jar
>>> Creating support/jce/policy/unlimited/local_policy.jar
>>> Generating java.security
>>> expr: syntax error
>>> expr: syntax error
>>> expr: syntax error
>>> expr: syntax error
>>> expr: syntax error
>>> expr: syntax error
>>> Note: Some input files use unchecked or unsafe operations.
>>> Note: Recompile with -Xlint:unchecked for details.
>>> Warning: generation and use of skeletons and static stubs for JRMP
>>> is deprecated. Skeletons are unnecessary, and static stubs have
>>> been superseded by dynamically generated stubs. Users are
>>> encouraged to migrate away from using rmic to generate skeletons and
>>> static
>>> stubs. See the documentation for java.rmi.server.UnicastRemoteObject.
>>> expr: syntax error
>>> expr: syntax error
>>> expr: syntax error
>>> All done.
>>> Generating linux_amd64_docs/jvmti.html
>>> Creating libverify.so from 2 file(s)
>>> Creating libjava.so from 61 file(s)
>>> Creating libfdlibm.a from 57 file(s)
>>>
>



More information about the build-dev mailing list