To resolve these errors, start by finding where the missing symbols are defined:
cd
into your database's /lib
sub-directory.
nm -A *.so | grep <symbol>
Unresolved symbol xsendto
" or "Undefined reference to xsendto
", the command would be nm -A *.so | grep xsendto
nm
output.Add the directory/ies that contains the library/ies found above to the shared library environment variable for your OS (i.e.,
,
, or
).
For example:
set LIBPATH=/app/product/oracle/8.0.4/lib:$LIBPATH
For errors regarding __ctype_b
, __ctype_tolower
, and __ctype_toupper
, follow the guidance in this section.
For other errors, proceed to the next section below.
Instructions in this section were based on Progress Knowledgebase Article ID#P101259.
32-bit __ctype_b
, __ctype_tolower
, and __ctype_toupper
.
These definitions are not contained in more recent versions of glibc -- but they remain necessary for Database Agent or Lite Driver relinking. You can either relink on a Linux machine which has such an older version of glibc (again, 2.3.2-5 or earlier), or follow the instructions below.
libctype.c
" with these contents --
#include <stdlib.h> #include <ctype.h> __const unsigned short int * __ctype_b; __const __int32_t * __ctype_tolower; __const __int32_t * __ctype_toupper; void __attribute__((constructor)) my_init() { __ctype_b = * __ctype_b_loc(); __ctype_tolower = * __ctype_tolower_loc(); __ctype_toupper = * __ctype_toupper_loc(); } void __attribute__((destructor)) my_clean() { }
gcc -O2 -shared -o libctype.so libctype.c
cd
into the /lib
sub-directory of your cc -s -o
line.
Oracle users must add it to the make -f
line.
Progress users who encounter errors with mkdlc
must add it to $PRO_EXTRA
.
For example: $PRO_EXTRA \ $PROLOAD/4gl/<missing file>.o \
uname -a