Thread overview
Error 42: Symbol Undefined __pctype
Sep 02, 2002
tatc
Sep 02, 2002
Jan Knepper
Sep 02, 2002
Tat Chan
Sep 02, 2002
Walter
September 02, 2002
Hi,
I have just downloaded DM v8.29n as I heard it is the successor to Symantec C++.
I have some old code and makefiles that were compiled using Symantec C++ v7.2
and I thought I would give DM a go.

My setup is NT 4.0 SP6a and the Cygwin Bash shell (only for command line
compilation).

I compiled the source using Symantec V7.2 (with SC v7.2B2n, LINK v7.21B3 and
SMAKE v7.21).

Compiling the code using the original Makefile and Symantec v7.2 was fine. I then modified the Makefile to use the DM, and I get the following problem during compilation:

(I still use the original Smake that came with Symantec v7.2, but use the new DM versions of SC and Link)


SMAKE  Program Maintenance Utility (Console) Version 7.21
Copyright (c) 1994-1995 Innovative Data Concepts Incorporated
Copyright (c) 1994-1995 Symantec Corporation
All Rights Reserved

d:\dm\bin\sc -r -Ju -mn -3 -a8 -C -S -g -gd  -D_CONSOLE -D_MT -D_WINDOWS
-DHAVE_USLEEP -DSQUID_CFG_DIR=\"./config\" -DSQUID_WGT_DIR=\"./wgtfiles\"  -DSQ
UID_LOG_DIR=\"./logs\" -DSAVESAMP_DIR=\"./savesamp\" -DUSE_GUI    -DHAVE_CAPI=1
-Ig:\capi20\include   -c -opsquid\main.obj main.c
perl ./scripts/xsrcs.pl -obj -prefix psquid sqexe.mak | perl ./scripts/m
kresp.pl        -symantec -link psquid\psquid.exe >psquid.lnk
echo pstnslib.lib sqlib.lib g:\capi20\lib\capi2032sym.lib  snn.lib winmm.lib
kernel32.lib gdi32.lib user32.lib >>psquid.lnk
echo psquid.def >>psquid.lnk
LINK /CODEVIEW /NOI /DE /XN /NT /ENTRY:mainCRTStartup  /BAS:4194304 /A:5
12  @psquid.lnk
OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

sqlib.lib(misc)
Error 42: Symbol Undefined __pctype
sqlib.lib(misc)
Error 42: Symbol Undefined __isctype
sqlib.lib(misc)
Error 42: Symbol Undefined ___locale_mbsize
SMAKE fatal error: command "LINK" returned with error code 3
Stopping.
SMAKE fatal error: command "smake" returned with error code 2
Stopping.

I did a grep on the contents of d:/dm/lib, and grep reported that the 3 undefined symbols are matched in snn.lib. In the makefile, I tried including snn.lib via the -l option and via a Makefile libs variable, to no success. The dir d:/dm/lib is set in my LIBS environment variable.

Any help would be appreciated.

Thanks,

Tat


September 02, 2002
Weird...
I think though this would indicate that for some reason the linker is still picking
up the wrong snn.lib file.
You could try to add the .lib with a complete path, i.e. d:\dm\lib\snn.lib

Jan



tatc@_NO_SPAM_cybernetics.com.au wrote:

> Hi,
> I have just downloaded DM v8.29n as I heard it is the successor to Symantec C++.
> I have some old code and makefiles that were compiled using Symantec C++ v7.2
> and I thought I would give DM a go.
>
> My setup is NT 4.0 SP6a and the Cygwin Bash shell (only for command line
> compilation).
>
> I compiled the source using Symantec V7.2 (with SC v7.2B2n, LINK v7.21B3 and
> SMAKE v7.21).
>
> Compiling the code using the original Makefile and Symantec v7.2 was fine. I then modified the Makefile to use the DM, and I get the following problem during compilation:
>
> (I still use the original Smake that came with Symantec v7.2, but use the new DM versions of SC and Link)
>
> SMAKE  Program Maintenance Utility (Console) Version 7.21
> Copyright (c) 1994-1995 Innovative Data Concepts Incorporated
> Copyright (c) 1994-1995 Symantec Corporation
> All Rights Reserved
>
> d:\dm\bin\sc -r -Ju -mn -3 -a8 -C -S -g -gd  -D_CONSOLE -D_MT -D_WINDOWS
> -DHAVE_USLEEP -DSQUID_CFG_DIR=\"./config\" -DSQUID_WGT_DIR=\"./wgtfiles\"  -DSQ
> UID_LOG_DIR=\"./logs\" -DSAVESAMP_DIR=\"./savesamp\" -DUSE_GUI    -DHAVE_CAPI=1
> -Ig:\capi20\include   -c -opsquid\main.obj main.c
> perl ./scripts/xsrcs.pl -obj -prefix psquid sqexe.mak | perl ./scripts/m
> kresp.pl        -symantec -link psquid\psquid.exe >psquid.lnk
> echo pstnslib.lib sqlib.lib g:\capi20\lib\capi2032sym.lib  snn.lib winmm.lib
> kernel32.lib gdi32.lib user32.lib >>psquid.lnk
> echo psquid.def >>psquid.lnk
> LINK /CODEVIEW /NOI /DE /XN /NT /ENTRY:mainCRTStartup  /BAS:4194304 /A:5
> 12  @psquid.lnk
> OPTLINK (R) for Win32  Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
>
> sqlib.lib(misc)
> Error 42: Symbol Undefined __pctype
> sqlib.lib(misc)
> Error 42: Symbol Undefined __isctype
> sqlib.lib(misc)
> Error 42: Symbol Undefined ___locale_mbsize
> SMAKE fatal error: command "LINK" returned with error code 3
> Stopping.
> SMAKE fatal error: command "smake" returned with error code 2
> Stopping.
>
> I did a grep on the contents of d:/dm/lib, and grep reported that the 3 undefined symbols are matched in snn.lib. In the makefile, I tried including snn.lib via the -l option and via a Makefile libs variable, to no success. The dir d:/dm/lib is set in my LIBS environment variable.
>
> Any help would be appreciated.
>
> Thanks,
>
> Tat

September 02, 2002
<tatc@_NO_SPAM_cybernetics.com.au> wrote in message news:akv4ka$2np8$1@digitaldaemon.com...
> I did a grep on the contents of d:/dm/lib, and grep reported that the 3 undefined symbols are matched in snn.lib. In the makefile, I tried
including
> snn.lib via the -l option and via a Makefile libs variable, to no success.
The
> dir d:/dm/lib is set in my LIBS environment variable.

Optlink uses the LIB environment variable, not LIBS.


September 02, 2002
Hi Jan and Walter,

Thanks for the help. I finally got it to compile. In my Makefile, I had the line

SYSLIBS	= snn.lib winmm.lib kernel32.lib gdi32.lib user32.lib

but I had to add the full path to the snn.lib file

SYSLIBS	= d:\dm\lib\snn.lib winmm.lib kernel32.lib gdi32.lib user32.lib

for the linker to succeed. I suppose it was picking up the old SNN.LIB file in the Symantec directory.

Thanks once again. The reason I downloaded DM was because I have to add some new features to old code that was compiled with Symantec C++, and the version I had didn't have full support for STL.


Tat

In article <3D736BF1.40218E9@smartsoft.cc>, Jan Knepper says...
>
>Weird...
>I think though this would indicate that for some reason the linker is still picking
>up the wrong snn.lib file.
>You could try to add the .lib with a complete path, i.e. d:\dm\lib\snn.lib
>
>Jan
>
>
>