[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::digital_unix

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

9973.0. "V4.0B _terrno unresolved" by CHEFS::DAVIDSONS () Wed May 28 1997 17:44

    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.RTitleUserPersonal
Name
DateLines
9973.1Are you using -threads throughout?WTFN::SCALESDespair is appropriate and inevitable.Thu May 29 1997 13:474
I see you're using the -threads switch on your link command line...are you using
it on your compile command line?

				Webb
9973.2C++ problem?CHEFS::DAVIDSONSSat May 31 1997 17:5954
    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.3xti.h doesn't seem to really understand C++WIBBIN::NOYCEPulling weeds, pickin&#039; stonesMon Jun 02 1997 11:406
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.4Reported as OSF_QAR 53271DECC::SULLIVANJeff SullivanMon Jun 02 1997 12:419
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.5SMURF::DENHAMDigital UNIX KernelMon Jun 02 1997 13:382
    Fix it in ptmin! Crank the priority if you have to...
    
9973.6A compilation environment/integration problem related to threads.WTFN::SCALESDespair is appropriate and inevitable.Mon Jun 02 1997 14:2912
.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.7Thanks, extern "C" fix is fine for nowCHEFS::DAVIDSONSMon Jun 02 1997 16:551