cmspack.c:(.text+0x276b): undefined reference to `_cmsHalf2Float' error in build-infra build ('old' build works OK)

Kelly O'Hair kelly.ohair at oracle.com
Wed Nov 14 15:23:08 PST 2012


On Nov 14, 2012, at 2:03 PM, Phil Race wrote:

> Ah .. I guess we (2d) broke that when we added the new file from LCMS 2.4 to
> FILES_c_unix.gmk but had no clue this other new top-level file existed.
> Kelly said get Makefile changes reviewed but didn't mention file lists.

I stated that anything in the make/ directories needed to be run by us.

> 
> So in the new build system is *everything* centralised like this?

Yes.

> Monolithic files rather than including area specific ones ?

Yes.

> I'm not sure what the supposed advantage might be?

It's ONE make process, and all dependencies are defined in one make process.
That's what allows us to do builds with the GNU make -j N option and gets us faster builds.
It only works when we have one make process that has all the dependencies.

Organization wise, we may split these included makefiles up, but not as separate "Makefiles".
For now, it's best to keep them all together until we clean up all the differences.
Much of the ugliness here is due to unnecessary differences, special cases, and sometimes incorrect make logic that
has been living in the old makefiles for a long time, for now we want to match the old makefile
behaviors, but at some point we will need to do some clean up here.

-kto

> 
> -phil.
> 
> On 11/11/12 3:02 PM, David Holmes wrote:
>> Hi Martijn,
>> 
>> Known issue fixed a couple of days ago:
>> 
>> http://hg.openjdk.java.net/build-infra/jdk8/jdk/rev/1e79fec4a01f
>> 
>> David
>> 
>> On 12/11/2012 8:45 AM, Martijn Verburg wrote:
>>> Hi all,
>>> 
>>> Building jdk8_tl on Ubuntu 12.04 with OpenJDK Runtime Environment (IcedTea7
>>> 2.3.3) (7u9-2.3.3-0ubuntu1~12.04.1)
>>> OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode). I get the following
>>> compilation error using build-infra (but not the 'old' build).
>>> 
>>> /home/openjdk/sources/jdk8_tl/build/linux-x86_64-normal-server-release/jdk/objs/liblcms/cmspack.o: 
>>> In function `UnrollHalfToFloat':
>>> cmspack.c:(.text+0x276b): undefined reference to `_cmsHalf2Float'
>>> cmspack.c:(.text+0x27c6): undefined reference to `_cmsHalf2Float'
>>> /home/openjdk/sources/jdk8_tl/build/linux-x86_64-normal-server-release/jdk/objs/liblcms/cmspack.o: 
>>> In function `UnrollHalfTo16':
>>> cmspack.c:(.text+0x2953): undefined reference to `_cmsHalf2Float'
>>> cmspack.c:(.text+0x29fa): undefined reference to `_cmsHalf2Float'
>>> /home/openjdk/sources/jdk8_tl/build/linux-x86_64-normal-server-release/jdk/objs/liblcms/cmspack.o: 
>>> In function `PackHalfFromFloat':
>>> cmspack.c:(.text+0x2baf): undefined reference to `_cmsFloat2Half'
>>> cmspack.c:(.text+0x2c10): undefined reference to `_cmsFloat2Half'
>>> cmspack.c:(.text+0x2ccb): undefined reference to `_cmsFloat2Half'
>>> /home/openjdk/sources/jdk8_tl/build/linux-x86_64-normal-server-release/jdk/objs/liblcms/cmspack.o: 
>>> In function `PackHalfFrom16':
>>> cmspack.c:(.text+0x2de7): undefined reference to `_cmsFloat2Half'
>>> cmspack.c:(.text+0x2e4d): undefined reference to `_cmsFloat2Half'
>>> /home/openjdk/sources/jdk8_tl/build/linux-x86_64-normal-server-release/jdk/objs/liblcms/cmspack.o:cmspack.c:(.text+0x2f01): 
>>> more undefined references to `_cmsFloat2Half' follow
>>> collect2: ld returned 1 exit status
>>> make[2]: ***
>>> [/home/openjdk/sources/jdk8_tl/build/linux-x86_64-normal-server-release/jdk/lib/amd64/liblcms.so] 
>>> Error 1
>>> make[1]: *** [libs-only] Error 2
>>> make: *** [jdk-only] Error 2
>>> 
>>> Haven't tracked it down any further than this yet, but thought I should
>>> report it in :-).
>>> 
>>> Cheers,
>>> Martijn
> 




More information about the build-infra-dev mailing list