<AWT Dev> [Fwd: Missing -L path for xawt]

David Holmes David.Holmes at oracle.com
Tue Dec 7 03:37:28 PST 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 awt-dev mailing list