I think the problem may be more subtle than this; I did a little
investigation, and missing functions are present in T2K.DLL, but not with
the leading underscores. I took a look at the exports from T2K.DLL, and
they're as follows:

C:\Prg\OpenJDK\BinaryPlugs>dumpbin /exports jdk1.7.0\jre\bin\t2k.dll
Microsoft (R) COFF/PE Dumper Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file jdk1.7.0\jre\bin\t2k.dll

File Type: DLL

  Section contains the following exports for t2k.dll

    00000000 characteristics
    468CC934 time date stamp Thu Jul 05 03:34:28 2007
        0.00 version
           1 ordinal base
          22 number of functions
          22 number of names

    ordinal hint RVA      name

          1    0 0002306C
[EMAIL PROTECTED]
          2    1 0002302E
[EMAIL PROTECTED]
          3    2 00023F9F [EMAIL PROTECTED]
          4    3 00024762 [EMAIL PROTECTED]
          5    4 00024027 [EMAIL PROTECTED]
          6    5 0002428C [EMAIL PROTECTED]
          7    6 00024108 [EMAIL PROTECTED]
          8    7 00025275 [EMAIL PROTECTED]
          9    8 000252CC [EMAIL PROTECTED]
         10    9 00025321 [EMAIL PROTECTED]
         11    A 00022EE1 [EMAIL PROTECTED]
         12    B 00023D91 [EMAIL PROTECTED]
         13    C 000233A7 [EMAIL PROTECTED]
         14    D 0002463E [EMAIL PROTECTED]
         15    E 00022EEB [EMAIL PROTECTED]
         16    F 00023F13 [EMAIL PROTECTED]
         17   10 00023EF8 [EMAIL PROTECTED]
         18   11 00023EDB [EMAIL PROTECTED]
         19   12 00023E20 getLayoutTables
         20   13 00023DBD getUnitsPerEmForLayout
         21   14 00023055 isNullScalerContext
         22   15 00022C03 setSunFontIDs

  Summary

        1000 .data
        7000 .rdata
        2000 .reloc
        1000 .rsrc
       25000 .text

As you can see, those missing four functions *are* there, in T2K.dll, but
don't have the leading underscore, which somehow the compiler thinks is
there. My guess is that there's a calling convention mixup here somehow, or
else the T2K.lib is somehow written to insert the leading underscores there.
(Which then implies it's not just a straightforward import library, I
think.) Is it possible that there's a macro somewhere in the native code
that's inserting an underscore when it shouldn't?

Ted Neward
Java, .NET, XML Services
Consulting, Teaching, Speaking, Writing
http://www.tedneward.com
 

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Monday, July 30, 2007 7:02 AM
> To: Ted Neward
> Cc: build-dev@openjdk.java.net
> Subject: Re: New bug in build process
> 
> Is this t2k.lib file the one you created from t2k.dll?
> 
> I've never seen these errors before, but it looks like it's in the
> fastdebug build, which would mean you got past the product build,
> which is significant.
> 
> This is just a wild guess, but I wonder if the debug t2k.dll file has more
> external symbols than the product one? I'm not that familiar with
> the external list for this library.
> 
> ---
> 
> Keep in mind that although we regularly build the fastdebug bits (-g -O),
> and
> some developers build the debug bits (-g), neither are tested very
> extensively.
> With the exception of the Hotspot VM, which gets tested fairly well with
> VM type tests.
> It's the product built bits that get most of the formal JDK testing done
> to them.
> 
> Product .obj/.o files should end up in a obj directory (under
> build/*/tmp),
> fastdebug ones in obj_gO, and debug ones in obj_g. I'm curious why you are
> seeing
> some obj_gO references and some obj_g references. Maybe there is another
> bug in
> the BinaryPlugs.gmk file... :^(
> 
> -kto
> 
> Ted Neward wrote:
> > After doing a “nuke” of the build dir, and doing a fresh “make
> > debug_build DEV=1” (again, on Windows), I get this:
> >
> >
> >
> >    Creating library
> > c:/Prg/OpenJDK/openjdk/control/build/WINDOW~2/tmp/sun/sun.fo
> >
> > nt/fontmanager/obj_gO/fontmanager.lib and object
> > c:/Prg/OpenJDK/openjdk/control/
> >
> > build/WINDOW~2/tmp/sun/sun.font/fontmanager/obj_gO/fontmanager.exp
> >
> > sunFont.obj : error LNK2019: unresolved external symbol _setSunFontIDs
> > reference
> >
> > d in function [EMAIL PROTECTED]
> >
> > sunFont.obj : error LNK2019: unresolved external symbol
> > _isNullScalerContext ref
> >
> > erenced in function [EMAIL PROTECTED]
> >
> > SunLayoutEngine.obj : error LNK2019: unresolved external symbol
> > _getUnitsPerEmFo
> >
> > rLayout referenced in function "public: virtual long __thiscall
> > FontInstanceAdap
> >
> > ter::getUnitsPerEM(void)const "
> ([EMAIL PROTECTED]@@UBEJXZ)
> >
> > FontInstanceAdapter.obj : error LNK2001: unresolved external symbol
> > _getUnitsPer
> >
> > EmForLayout
> >
> > FontInstanceAdapter.obj : error LNK2019: unresolved external symbol
> > _getLayoutTa
> >
> > bles referenced in function "public: __thiscall
> > FontInstanceAdapter::FontInstanc
> >
> > eAdapter(struct JNIEnv_ *,class _jobject *,class _jobject *,float
> > *,long,long)"
> >
> > (??0FontInstanceAdapter@@[EMAIL PROTECTED]@@PAV_jobject@@[EMAIL PROTECTED])
> >
> >
> c:/Prg/OpenJDK/openjdk/control/build/WINDOW~2/tmp/sun/sun.font/fontmanager
> /obj_g
> >
> > O/fontmanager.dll : fatal error LNK1120: 4 unresolved externals
> >
> > make[5]: ***
> > [c:/Prg/OpenJDK/openjdk/control/build/WINDOW~2/bin/fontmanager.dll]
> >
> >  Error 96
> >
> > make[5]: Leaving directory
> > `/cygdrive/c/Prg/OpenJDK/openjdk/j2se/make/sun/font'
> >
> > make[4]: *** [all] Error 1
> >
> > make[4]: Leaving directory
> `/cygdrive/c/Prg/OpenJDK/openjdk/j2se/make/sun'
> >
> > make[3]: *** [all] Error 1
> >
> > make[3]: Leaving directory `/cygdrive/c/Prg/OpenJDK/openjdk/j2se/make'
> >
> > make[2]: *** [j2se-build] Error 2
> >
> > make[2]: Leaving directory
> `/cygdrive/c/Prg/OpenJDK/openjdk/control/make'
> >
> > make[1]: *** [generic_debug_build] Error 2
> >
> > make[1]: Leaving directory
> `/cygdrive/c/Prg/OpenJDK/openjdk/control/make'
> >
> > make: *** [fastdebug_build] Error 2
> >
> > CYGWIN:[EMAIL PROTECTED]:/cygdrive/c/Prg/OpenJDK/openjdk/control/make
> >
> > $
> >
> >
> >
> > Apparently there’s some missing object files in the link step of
> > fontmanager.lib; any ideas? Intuition tells me this is t2k.lib-related
> > again, since we’re back in the silly font directory again, and yes, I
> > know, t2k is going away soon, but I’d like to see if it can be worked
> > around in the meantime. Legal issues have this annoying tendency to take
> > MUCH longer than engineers think they should… :-)
> >
> >
> >
> > The build output prior to this link line is pretty verbose, but I can
> > send it if it’ll help debug the problem….
> >
> >
> >
> > Ted Neward
> >
> > Java, .NET, XML Services
> >
> > Consulting, Teaching, Speaking, Writing
> >
> > http://www.tedneward.com
> >
> >
> >
> >
> >
> >
> > No virus found in this outgoing message.
> > Checked by AVG Free Edition.
> > Version: 7.5.476 / Virus Database: 269.10.23/924 - Release Date:
> > 7/28/2007 3:50 PM
> >
> 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.476 / Virus Database: 269.10.23/924 - Release Date: 7/28/2007
> 3:50 PM
> 

No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.476 / Virus Database: 269.11.0/929 - Release Date: 7/31/2007
5:26 PM
 

Reply via email to