Excellent!
Those two functions are C runtime helpers that the C++ compiler calls on
our behalf (a call to alloca() in source code becomes a call to
__alloca_probe_16, for example). By adding them to rotor_pal.src like
that, you added those two functions to rotor_pal.dll's export table, and
the PAL implementation is a pure forwarder to the real C runtime
function.
Barry
-----Original Message-----
From: Discussion of the Rotor Shared Source CLI implementation
[mailto:
DOTNET-ROTOR@DISC...] On Behalf Of Muhammad Abubakar
Sent: Friday, September 23, 2005 7:39 AM
To:
DOTNET-ROTOR@DISC...
Subject: Re: [DOTNET-ROTOR] Building Rotor with VS 2005 Beta 2
Hey thanks for idea :-) I think we have successfully built the secondary
bootstrap portion of the source tree!!!!!
check the output:
++++++++++++++++++++++++++
(skipping a lot of lines here )
..............
Binplacing - d:\sscli\palrt\inc\string.h for i386
Binplacing - d:\sscli\palrt\inc\time.h for i386
Binplacing - d:\sscli\palrt\inc\unknwn.h for i386
Binplacing - d:\sscli\palrt\inc\wchar.h for i386
Binplacing - d:\sscli\palrt\inc\winbase.h for i386
Binplacing - d:\sscli\palrt\inc\wincrypt.h for i386
Binplacing - d:\sscli\palrt\inc\windef.h for i386
Binplacing - d:\sscli\palrt\inc\windows.h for i386
Binplacing - d:\sscli\palrt\inc\winerror.h for i386
Binplacing - d:\sscli\palrt\inc\winnls.h for i386
Binplacing - d:\sscli\palrt\inc\winresrc.h for i386
Binplacing - d:\sscli\palrt\inc\winver.h for i386
BUILD: Done
51 files compiled - 225 Warnings - 2348 LPS
2 libraries built - 2 Warnings
1 executable built - 1 Warning
1 browse database built
49 files binplaced
D:\sscli\palrt\src>cd..
D:\sscli\palrt>cd..
D:\sscli>cd..
D:\>cd sscli
D:\sscli>dir *.dll /s
Volume in drive D is DISK1_VOL2
Volume Serial Number is 6D21-A58D
Directory of D:\sscli\clr\bin\rotor_x86\fastchecked
09/23/2005 07:31p 77,312 rotor_palrt.dll
09/23/2005 07:30p 163,840 rotor_pal.dll
2 File(s) 241,152 bytes
Directory of D:\sscli\build\v1.x86fstchk.rotor
04/08/2005 06:46p 1,146,880 msvcr80d.dll
09/23/2005 07:30p 163,840 rotor_pal.dll
09/23/2005 07:31p 77,312 rotor_palrt.dll
3 File(s) 1,388,032 bytes
Total Files Listed:
5 File(s) 1,629,184 bytes
0 Dir(s) 909,205,504 bytes free
++++++++++++++++++++++++++
I can see the rotor_palrt.dll there :-).
Now on to the sscli core, C# compiler, bcl, and the supporting tools.
Abubakar.
http://joehacker.blogspot.com
(I maybe sending emails here this weekend as I try to build the rest of
the
framework so keep checking in. thanks!)
On 9/23/05, Barry Bond <
barrybo@micr...> wrote:
>
> Try adding _alloca_probe_16 and _ftol2_sse to pal\win32\rotor_pal.src.
> The best place to do that is right below the existing "_alloca_probe"
> line.
>
> Barry
>
> -----Original Message-----
> From: Discussion of the Rotor Shared Source CLI implementation
> [mailto:
DOTNET-ROTOR@DISC...] On Behalf Of Muhammad
Abubakar
> Sent: Friday, September 23, 2005 6:01 AM
> To:
DOTNET-ROTOR@DISC...
> Subject: Re: [DOTNET-ROTOR] Building Rotor with VS 2005 Beta 2
>
> i'm stuck building the pal rt. It seems that my rotor_pal.dll has not
> been
> built 100% correctly. Its missing some functions. Like alloca I guess.
> Can
> you tell me what does this error means while I'm building the pal rt:
>
> +++++++++++++
> ......
> many lines before this
> cl : warning D9036 : use 'EHs-c-' instead of 'GX-'
> cl : warning D9035 : option 'Gi-' has been deprecated and will be
> removed in
> a future release
> cl : warning D9002 : ignoring unknown option '/QIfdiv-'
> cl : warning D9002 : ignoring unknown option '/QI0f'
> cl : warning D9002 : ignoring unknown option '/G6'
> Compiling - variant.cpp for i386
> Building Library -
> d:\sscli\clr\bin\rotor_x86\fastchecked\rotor_palrt.lib
> for rotor_x86
> lib : warning LNK4224: /DEBUGTYPE:CV is no longer supported; ignored
> Building Library -
> d:\sscli\clr\bin\rotor_x86\fastchecked\rotor_palrt.lib
> for rotor_x86
> lib : warning LNK4224: /DEBUGTYPE:CV is no longer supported; ignored
> Building Browse File -
> d:\sscli\clr\bin\rotor_x86\fastchecked\rotor_palrt.lib for all
platforms
> BUILD: Linking d:\sscli\palrt\src directory
> Linking Executable -
> d:\sscli\clr\bin\rotor_x86\fastchecked\rotor_palrt.dll
> for i386
> link : warning LNK4224: /DEBUG:FULL is no longer supported; ignored
> bignum.obj : error LNK2019: unresolved external symbol
__alloca_probe_16
> referenced in function "public:
>
> stat
> ic int __stdcall BigNum::InvMod(class BigNum *,class BigNum *,class
> BigNum
> *)"
>
> (?InvMod@BigNum@@SGHPAV1@00@Z)
>
> crypt.obj : error LNK2001: unresolved external symbol
__alloca_probe_16
> convert.obj : error LNK2019: unresolved external symbol __ftol2_sse
> referenced in function "long __stdcall
>
> Co
> nvI4FromR8(double)" (?ConvI4FromR8@@YGJN@Z)
> variant.obj : error LNK2001: unresolved external symbol __ftol2_sse
> d:\sscli\clr\bin\rotor_x86\fastchecked\rotor_palrt.dll : error
LNK1120:
> 2
> unresolved externals
> binplace : warning BNP0000:
>
>
CopyFile(D:\sscli\clr\bin\rotor_x86\fastchecked\rotor_palrt.dll,D:\sscli
> \build\v1
> .x86fstchk.rotor\.\rotor_palrt.dll) failed 2
> binplace : error BNP0000: Unable to place file
> D:\sscli\clr\bin\rotor_x86\fastchecked\rotor_palrt.dll -
>
> exiting.
> Binplacing - d:\sscli\palrt\inc\assert.h for i386
> Binplacing - d:\sscli\palrt\inc\atl.h for i386
> Binplacing - d:\sscli\palrt\inc\ccombstr.h for i386
> Binplacing - d:\sscli\palrt\inc\crtdbg.h for i386
> Binplacing - d:\sscli\palrt\inc\ctype.h for i386
> Binplacing - d:\sscli\palrt\inc\float.h for i386
> Binplacing - d:\sscli\palrt\inc\guiddef.h for i386
> Binplacing - d:\sscli\palrt\inc\io.h for i386
>
> many lines below this ........
>
> in the end the following is displayed:
> .......
> Binplacing - d:\sscli\palrt\inc\winresrc.h for i386
> Binplacing - d:\sscli\palrt\inc\winver.h for i386
> BUILD: Done
>
> 51 files compiled - 225 Warnings - 2684 LPS
> 2 libraries built - 2 Warnings
> 1 executable built - 1 Warning - 5 Errors
> 1 browse database built
> 49 files binplaced - 1 Warning - 1 Error
>
> +++++++++++++
>
> why is alloca unresolved? I read in the docs that its been deprecated.
I
> need suggestions on this one. My
>
> hint was something to do with _MSC_VER define checks that are in so
many
> places but I'm not sure. Does the
>
> following gives any hint? :
>
>
> #ifdef _MSC_VER
> #define alloca _alloca
> #else
> #define _alloca alloca
> #endif //_MSC_VER
>
> PALIMPORT void * __cdecl _alloca(size_t);
>
> Its inside the rotor_pal.h. Also look at win32pal.h.
>
>
> Btw remember in my earlier post I mentioned the ctime() error that the
> "build" tools's source code was
>
> giving and I commented the code to make the build work? Well I
resolved
> that. I was looking at the exports
>
> (generated by dumpbin on msvcr80d) that it did not contain definition
> for
> ctime. I saw that rotor_pal.def contains (after preprocessing)
> ctime = msvcr80d.ctime
> but since it was not in the exported function by msvcr80d so I looked
> for
> one that had it and I found
>
> crtdll.dll and added the a new macro called NOTLOGGEDCRTAB in
> \sscli\pal\win32\rotor_pal.src
> ......
> #if DBG
> #define PALEXPORT(x) x = PAL_##x
> #define PALEXPORTCRT(x) x = PAL_##x
> #define PALEXPORTOLE(x) x = PAL_##x
> #define PALEXPORTUSER(x) x = PAL_##x
> #define PALEXPORTSOCKET(x) x = PAL_##x
> #define NOTLOGGED(x) x = KERNEL32.##x
> #if _MSC_VER == 1310
> ; Changes neccessary to build and run against VS7.1.
> ; In order to run against the 7.0 runtime modify this
> ; against MSVCR70D
> #define NOTLOGGEDCRT(x) x = MSVCR80D.##x
> #else
> #define NOTLOGGEDCRTAB(x) x = crtdll.##x <-------- notice this
> #define NOTLOGGEDCRT(x) x = MSVCR80D.##x
> #endif
> #else
> .......
>
> and replaced
> NOTLOGGEDCRT(ctime)
> with
> NOTLOGGEDCRTAB(ctime)
>
> Now I uncommented the source code that was using ctime() and it
compiled
> and
> build fine.
>
> Abubakar.
>
>
> On 9/22/05, Lorenzo <
dematte@ieee...> wrote:
> >
> > Muhammad Abubakar writes:
> >
> > > well this page explains why I'm getting those last errors:
> > >
http://msdn2.microsoft.com/en-us/library/ms177253(en-us,vs.80).aspx
> > > also explains why I had to write /GS with minus sign like this:
> /GS-.
> > Cuz
> > > its on by default so we have to turn it off through a - sign. The
> > > /Zc:wchar_t is also on by default so we have to turn off that also
> which
> > is
> > > causing problems in compiling pal rt sources becuase of
> > > typedef unsigned short wchar_t;
> > > in so many places.
> > > Abubakar.
> > >
http://joehacker.blogspot.com.
> >
> > Hey, great work! Yes, I knew that command line options changed much
in
> > VS2005, and with them defaults too.. And according to some articles,
> they
> > are going to change again in post-beta2 builds..
> >
> > So, how far did you get?
> >
> > Lorenzo
> >
> > ===================================
> > This list is hosted by DevelopMentor(r)
http://www.develop.com
> >
> > View archives and manage your subscription(s) at
> >
http://discuss.develop.com
> >
>
> ===================================
> This list is hosted by DevelopMentor(r)
http://www.develop.com
>
> View archives and manage your subscription(s) at
>
http://discuss.develop.com
>
> ===================================
> This list is hosted by DevelopMentor(r)
http://www.develop.com
>
> View archives and manage your subscription(s) at
>
http://discuss.develop.com
>
===================================
This list is hosted by DevelopMentor(r)
http://www.develop.com
View archives and manage your subscription(s) at
http://discuss.develop.com
===================================
This list is hosted by DevelopMentorĀ®
http://www.develop.com
View archives and manage your subscription(s) at
http://discuss.develop.com
opensubscriber is not affiliated with the authors of this message nor responsible for its content.