Kbase 19204: Probuild Scripts Fail With Oracle 7.3.4
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/15/2008 |
|
Status: Verified
FACT(s) (Environment):
Compaq Tru64 UNIX 4.0x
Oracle DataServer
Oracle 7.3.4.x
SYMPTOM(s):
Errors when trying to link an executable for the ORACLE DataServer:
chown: _progres: No such file or directory
chmod: _progres: No such file or directory
CAUSE:
This issue is specific to ORACLE 7.3.4 and Compaq Tru64 4.0. The problem is caused by the ORALIB environment variable being incorrectly set. This will only be a problem on Progress versions that link statically with the ORACLE libraries. These are Progress versions 8.3 and earlier. When the PROBUILD link script runs on UNIX, it uses the ld command link together the object files and libraries to create an executable. When building an ORACLE DSV executable, the ORALIB environment variable is used to identify the ORACLE libraries that should be used.
The above errors are UNIX errors generated by commands within the PROBUILD link script, when creating ORACLE DSV executables. These commands fail because ld did not generate an executable. Normally, if ld fails, it should return an error status. The PROBUILD script checks for this error status, and handles it correctly.
In this situation, ld did not return an error status, although it did fail. The reason for this failure is the ORALIB environment variable is not set correctly. ORALIB is set within the buildenv script (called from the PROBUILD link script), by copying information from the ORACLE demo programs. With ORACLE 7.3.4, on Compaq Tru64 4.0, ORALIB is created incorrectly. This seems to be fairly consistent for this ORACLE version on this platform.
This is also somewhat specific to Progress versions. This will only happen for versions of Progress that link executables statically. This includes both versions 7 and 8. Version 9.X links dynamically at runtime, and the necessary shared objects and libraries would be resolved then.
FIX:
The workaround is to set ORALIB manually. Please refer to Solution 18379 "How to set ORALIB manually for linking DataServer executable". In this specific case, ORALIB is set with "-O2 -o oralib" at the start. This should be removed from ORALIB.