<AWT Dev> [Fwd: Missing -L path for xawt]
David Holmes
David.Holmes at oracle.com
Tue Dec 7 11:37:28 UTC 2010
Hi Artem,
Artem Ananiev said the following on 12/07/10 21:14:
>
> On 12/7/2010 3:06 AM, David Holmes wrote:
>> Total silence on build-dev. Perhaps someone on awt-dev knows what to
>> look for?
>
> Could you provide an exact build error you're observing, please?
>
> As far as I know, we shouldn't link to libmawt.so (I assume you meant
> libmawt.so, not libxawt.so, right?) directly as there are multiple
> versions of libmawt (in i386/xawt, i386/headless, i386/motif in JDK6),
> and what libmawt.so should be used is determined in runtime.
> sun/xawt/Makefile doesn't contain -lxawt or -lmawt, which makes me
> believe my assumption is correct.
The error is in linking libjawt.so. There are references to undefined
symbols - see below.
And yes I meant libmawt not libxawt - sorry about that, got confused
between the library name and the directory it can be found in.
AFAICS the missing symbols are in libmawt, which is specified with
-lmawt but I couldn't see where it would be found. However you've now
told me it should be in headless (which is set by -L) - and there it is,
but the symbols are not in there - so I think my problem is that
headless/libmawt.so is not being built right, and that is something I
can link to my Makefile changes!
Many thanks!
David
-----
Rebuilding
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/lib/i386/libjawt.so
because of
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/tmp/sun/sun.awt/jawt/obj_gO/.files_compiled
mapfile-vers
/java/devtools/i586/SUNWspro/SS12u1/bin/cc -g -xO2
-L/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/tmp/sun/sun.awt/jawt/obj_gO
-xc99=%none -xCC -errshort=tags -Xa -v -mt -xstrconst -W0,-noglobal
-m32 -erroff=E_BAD_PRAGMA_PACK_VALUE -KPIC -DDEBUG -DLOGGING -DDBINFO
-D__solaris__ -Di586 -DcpuIntel -D_LITTLE_ENDIAN= -Di386 -DTRACING
-DMACRO_MEMSYS_OPS -DBREAKPTS -I.
-I/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/tmp/sun/sun.awt/jawt/CClassHeaders
-I../../../src/solaris/javavm/export -I../../../src/share/javavm/export
-I../../../src/share/native/common -I../../../src/solaris/native/common
-I../../../src/share/native/sun/awt
-I../../../src/solaris/native/sun/awt -DJAVASE_EMBEDDED
-I/usr/openwin/include -I../../../src/share/native/sun/awt/debug
-I../../../src/share/native/sun/awt/image
-I../../../src/share/native/sun/awt/image/cvutils
-I../../../src/share/native/sun/awt/alphacomposite
-I../../../src/share/native/sun/awt/medialib
-I../../../src/solaris/native/sun/awt/medialib
-I../../../src/share/native/sun/awt/../java2d/loops
-I../../../src/share/native/sun/awt/../java2d/pipe
-I../../../src/share/native/sun/awt/../java2d/opengl
-I../../../src/solaris/native/sun/awt/../java2d/opengl
-I../../../src/solaris/native/sun/awt/../java2d/x11
-I../../../src/share/native/sun/awt/../dc/doe
-I../../../src/share/native/sun/awt/../dc/path
-I../../../src/solaris/native/sun/awt/../jdga -Mmapfile-vers -z defs
-L/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/lib/i386
-xildoff -R\$ORIGIN -ztext -G -o
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/lib/i386/libjawt.so
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/tmp/sun/sun.awt/jawt/obj_gO/jawt.o
-L/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/lib/i386
-L/usr/openwin/lib
-L/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/lib/i386/headless
-lmawt -L/usr/openwin/sfw/lib -lXrender -ljava
-L/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/lib/i386/client
-ljvm -m32 -lc
Undefined first referenced
symbol in file
awt_FreeDrawingSurface
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/tmp/sun/sun.awt/jawt/obj_gO/jawt.o
awt_Unlock
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/tmp/sun/sun.awt/jawt/obj_gO/jawt.o
awt_GetComponent
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/tmp/sun/sun.awt/jawt/obj_gO/jawt.o
awt_GetDrawingSurface
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/tmp/sun/sun.awt/jawt/obj_gO/jawt.o
awt_Lock
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/tmp/sun/sun.awt/jawt/obj_gO/jawt.o
ld: fatal: Symbol referencing errors. No output written to
/java/embedded/ws/ej2se-master/1.7.0/builds/b02/solaris-i586-ea/../solaris-i586-fastdebug/lib/i386/libjawt.so
> Thanks,
>
> Artem
>
>> Please cc me as I'm not a member of awt-dev.
>>
>> Thanks,
>> David
>>
>> -------- Original Message --------
>> Subject: Missing -L path for xawt
>> Date: Mon, 06 Dec 2010 20:34:12 +1000
>> From: David Holmes <David.Holmes at oracle.com>
>> Organization: Oracle Corporation
>> To: build-dev <build-dev at openjdk.java.net>
>>
>> I have a problem building for Solaris-i586. When building libjawt.so I
>> get missing symbol references that should be coming from libxawt.so.
>> However the -L path is for lib/i386 whereas xawt.so resides in
>> lib/i386/xawt, hence it isn't found.
>>
>> I can't tell why this error is arising. Does anyone have any suggestions
>> as to what might be the source of the problem?
>>
>> The other possibility is that the lib is meant to be build with "z
>> nodefs" rather than "z defs" - though again I'm not sure where this flag
>> might be being mis-set.
>>
>> Thanks,
>> David Holmes
>>
More information about the build-dev
mailing list