| Title: | DIGITAL UNIX (FORMERLY KNOWN AS DEC OSF/1) |
| Notice: | Welcome to the Digital UNIX Conference |
| Moderator: | SMURF::DENHAM |
| Created: | Thu Mar 16 1995 |
| Last Modified: | Fri Jun 06 1997 |
| Last Successful Update: | Fri Jun 06 1997 |
| Number of topics: | 10068 |
| Total number of notes: | 35879 |
Code which used to compile on V3.2D results in '_terrno unresolved'
when I attempt to compile it on V4.0B.
Any ideas, advice how to pursue this would be appreciated.
Thanks,
Stuart.
# make clean ; make ; make nss
/usr/bin/rm -f core *~ ../obj/*.o *.o tst nss ../lib/lib_sys_server.a
Compiling C++ file ss_comms_server.C
cxx: Warning: /usr/include/xti.h, line 308: The redefinition of the macro
"T_NULL" conflicts with a current definition because the replacement lists
differ. The redefinition is now in effect.
#define T_NULL 0
------------------------^
Finished ss_comms_server.o
Compiling Template file templates.C - using -define_templates
!
Finished templates.o
Re-building library ../lib/lib_sys_server.a
Library ../lib/lib_sys_server.a is now up-to-date
Bringing required libraries up to date
Updating lib_sys_server.a
Updating lib_sys_device_interface.a
Updating lib_sys_comms_services.a
Updating lib_lmc_aai.a
Updating lib_project_common.a
Re-linking nss ...
/usr/bin/cxx -o nss -g -threads -DXTI_XPG3 -DDEBUG -D_THREAD_SAFE
-DSNACC_DEEP_COPY=1 -g -threads -lm -lutc -lrt -ldnet -ldna -lX11 -lXt -lXm
-ldns -lxti -lxtiosi nss.C -I../../../sys/comms_services/include
-I../../../project_common/include -I../../../lmc/aai/include
-I../../../sys/server/include ../../../sys/server/lib/lib_sys_server.a
../../../sys/device_interface/lib/lib_sys_device_interface.a
../../../sys/comms_services/lib/lib_sys_comms_services.a
../../../lmc/aai/lib/lib_lmc_aai.a
../../../project_common/lib/lib_project_common.a
../../../omc/snmp/lib/lib_omc_snmp.a ../../../tools/netview/lib/libnvsnmp.a
../../../tools/netview/lib/libesnmp.so ../../../tools/netview/lib/libovw.a
../../../tools/netview/lib/libov.a ../../../tools/netview/lib/libntl.a
../../../sys/server/lib/lib_sys_server.a
../../../sys/device_interface/lib/lib_sys_device_interface.a
../../../sys/comms_services/lib/lib_sys_comms_services.a
../../../lmc/aai/lib/lib_lmc_aai.a
../../../project_common/lib/lib_project_common.a
../../../omc/snmp/lib/lib_omc_snmp.a ../../../tools/netview/lib/libnvsnmp.a
../../../tools/netview/lib/libesnmp.so ../../../tools/netview/lib/libovw.a
../../../tools/netview/lib/libov.a ../../../tools/netview/lib/libntl.a
../../../sys/server/lib/lib_sys_server.a
../../../sys/device_interface/lib/lib_sys_device_interface.a
../../../sys/comms_services/lib/lib_sys_comms_services.a
../../../lmc/aai/lib/lib_lmc_aai.a
../../../project_common/lib/lib_project_common.a
../../../omc/snmp/lib/lib_omc_snmp.a ../../../tools/netview/lib/libnvsnmp.a
../../../tools/netview/lib/libesnmp.so ../../../tools/netview/lib/libovw.a
../../../tools/netview/lib/libov.a ../../../tools/netview/lib/libntl.a
../../../sys/server/lib/lib_sys_server.a
../../../sys/device_interface/lib/lib_sys_device_interface.a
../../../sys/comms_services/lib/lib_sys_comms_services.a
../../../lmc/aai/lib/lib_lmc_aai.a
../../../project_common/lib/lib_project_common.a
../../../omc/snmp/lib/lib_omc_snmp.a ../../../tools/netview/lib/libnvsnmp.a
../../../tools/netview/lib/libesnmp.so ../../../tools/netview/lib/libovw.a
../../../tools/netview/lib/libov.a ../../../tools/netview/lib/libntl.a
ld:
Unresolved:
_terrno(void)
*** Exit 1
Stop.
# # odump -Dl nss
***LIBRARY LIST SECTION***
Name Time-Stamp CheckSum Flags Version
nss:
libm.so Nov 16 01:49:59 1996 0x6888af99 0 osf.1
libutc.so Apr 5 18:38:16 1996 0xc2496287 0
librt.so Nov 16 02:00:24 1996 0x7d7e57d7 0 osf.1
libdnet.so Aug 8 20:27:30 1996 0x7399ce54 0
libdnet.so Aug 8 20:27:30 1996 0x7399ce54 0
libdna.so Aug 13 18:33:14 1996 0x67f343ba 0
libdna.so Aug 13 18:33:14 1996 0x67f343ba 0
libX11.so Nov 16 07:08:39 1996 0x3456049e 0
libXt.so Nov 16 07:14:31 1996 0x10dd9a17 0
libXm.so Nov 16 08:34:26 1996 0xa55f6d32 0 motif1.2
libdns.so Aug 13 18:33:10 1996 0xb8c95281 0
libdns.so Aug 13 18:33:10 1996 0xb8c95281 0
libxti.so Nov 16 02:00:11 1996 0x5cbd395b 0 osf.1
libxtiosi.so Aug 8 20:37:24 1996 0x1b91f890 0
libnvsnmp.a Dec 6 05:25:56 1995 0x412a52ec 0
libesnmp.so Dec 12 00:12:46 1995 0xf821cd2d 0 osf.1
libovw.a Dec 6 05:25:23 1995 0x7ac8f975 0
libov.a Dec 6 05:25:13 1995 0x8d89d092 0
libntl.a Dec 6 05:25:13 1995 0x12de5ac6 0
libnvsnmp.a Dec 6 05:25:56 1995 0x412a52ec 0
libesnmp.so Dec 12 00:12:46 1995 0xf821cd2d 0 osf.1
libovw.a Dec 6 05:25:23 1995 0x7ac8f975 0
libov.a Dec 6 05:25:13 1995 0x8d89d092 0
libntl.a Dec 6 05:25:13 1995 0x12de5ac6 0
libnvsnmp.a Dec 6 05:25:56 1995 0x412a52ec 0
libesnmp.so Dec 12 00:12:46 1995 0xf821cd2d 0 osf.1
libovw.a Dec 6 05:25:23 1995 0x7ac8f975 0
libov.a Dec 6 05:25:13 1995 0x8d89d092 0
libntl.a Dec 6 05:25:13 1995 0x12de5ac6 0
libnvsnmp.a Dec 6 05:25:56 1995 0x412a52ec 0
libesnmp.so Dec 12 00:12:46 1995 0xf821cd2d 0 osf.1
libovw.a Dec 6 05:25:23 1995 0x7ac8f975 0
libov.a Dec 6 05:25:13 1995 0x8d89d092 0
libntl.a Dec 6 05:25:13 1995 0x12de5ac6 0
libcxx.so Nov 16 01:53:54 1996 0x966808b6 0 V4.0.1
libpthreads.so Nov 16 01:58:52 1996 0x8512dc8c 0 osf.1
libpthread.so Nov 16 03:37:46 1996 0x50163f37 0 osf.1
libmach.so Nov 16 01:57:04 1996 0x97ad5768 0 osf.1
libexc.so Nov 16 01:50:05 1996 0x3184247e 0 osf.1
libc.so Nov 16 01:49:52 1996 0xf937323b 0 osf.1
#
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 9973.1 | Are you using -threads throughout? | WTFN::SCALES | Despair is appropriate and inevitable. | Thu May 29 1997 12:47 | 4 |
I see you're using the -threads switch on your link command line...are you using it on your compile command line? Webb | |||||
| 9973.2 | C++ problem? | CHEFS::DAVIDSONS | Sat May 31 1997 16:59 | 54 | |
Thanks, but I don't think this is a thread problem.
The following code fragment demonstrates the problem. This only
happens on V4.0B using C++. A similar C program has no problem.
Also, the C++ program links OK on V3.2D.
Any ideas why C++ make the reference to _terrno(void) ?
^^^^
Stuart.
I'll X-post this in the C++ conference.
# cxx test_errno.C -o test_errno.o -c
# nm test_errno.o | grep errno
_terrno(void) | 0000000000000000 | U | 0000000000000008
# cxx test_errno.C -o test_errno -lxti
ld:
Unresolved:
_terrno(void)
# nm /usr/shlib/libxti.so | grep errno
_Get_terrno | 0004395912546600 | T | 0000000000000008
_Geterrno | 0000000000000000 | U | 0000000000000008
_Set_terrno | 0004395912546648 | T | 0000000000000008
_Seterrno | 0000000000000000 | U | 0000000000000008
__init_terrno | 0004395912546328 | T | 0000000000000008
_terrno | 0004395912546048 | T | 0000000000000008
errno | 0000000000000004 | C | 0000000000000000
free_terrno | 0004395912546536 | T | 0000000000000008
t_errno | 0004396978018736 | S | 0000000000000000
#include <xti.h>
#include <iostream.h>
class test_errno
{
public:
test()
{
int t;
t = t_errno;
cout << t;
}
};
main()
{
test_errno te;
te.test();
}
| |||||
| 9973.3 | xti.h doesn't seem to really understand C++ | WIBBIN::NOYCE | Pulling weeds, pickin' stones | Mon Jun 02 1997 10:40 | 6 |
Do you need to make sure the names aren't mangled? Try
bracketing the #include <xti.h> like this:
extern "C" {
#include <xti.h>
}
| |||||
| 9973.4 | Reported as OSF_QAR 53271 | DECC::SULLIVAN | Jeff Sullivan | Mon Jun 02 1997 11:41 | 9 |
I reported this as Medium priority QAR 53271, assigned to NETWORKING. If you need to add more info or re-assign, feel free to do so. This would need to be a High priority or greater to be included in PT.minor. Else it will be fixed (hopefully) in Steel. Thanks for posting the problem. -Jeff | |||||
| 9973.5 | SMURF::DENHAM | Digital UNIX Kernel | Mon Jun 02 1997 12:38 | 2 | |
Fix it in ptmin! Crank the priority if you have to...
| |||||
| 9973.6 | A compilation environment/integration problem related to threads. | WTFN::SCALES | Despair is appropriate and inevitable. | Mon Jun 02 1997 13:29 | 12 |
.2> Thanks, but I don't think this is a thread problem. [...] .2> Any ideas why C++ make the reference to _terrno(void) ? Are you asking why _terrno is a function, or why it takes no arguments? (;-) It's a function so that it will work well with threads (because if it were a global variable multiple threads couldn't use it at the same time). It takes no arguments because none are required... Webb | |||||
| 9973.7 | Thanks, extern "C" fix is fine for now | CHEFS::DAVIDSONS | Mon Jun 02 1997 15:55 | 1 | |