Running CA Gen 8.5 mkdbs.bat for Oracle 11 fails at final link step relinking the database dll with this error:
===
MKDBS: Compiling the database dll modules
tiroconn.c
tirora.c
tirora.c(305) : warning C4273: 'getenv' : inconsistent dll linkage
c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdlib.h(433) : see previous definition of 'getenv'
MKDBS: Relinking the database dll
C:\app\product\11.2.0\client_1\precomp\lib\orasql11.lib" aecom85n.lib aeuexit85n.lib iefmbt85n.lib >> aecdb.lnk
Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.17336
Copyright (C) Microsoft Corporation. All rights reserved.
aecora.def : error LNK2001: unresolved external symbol align_malloc
aecora85n.lib : fatal error LNK1120: 1 unresolved externals
MKDBS: Link of aecora85n.dll failed
===
Release : 8.5
Component : CA Gen Run Time, Distributed
To avoid having to set the LIB environment variable to include the Oracle directory containing the orasql11.lib file (C:\app\product\11.2.0\client_1\precomp\lib\) the user had changed a line in mkdbs.bat to be the full path to orasql11.lib but had inadvertently included a double quote (") at the end of that full path string i.e.
this line:
if "%iefdbms%" == "oracle11" echo orasql11.lib aecom85n.lib aeuexit85n.lib iefmbt85n.lib >> aecdb.lnk
was changed to:
if "%iefdbms%" == "oracle11" echo C:\app\Administrator\product\11.2.0\client_1\precomp\lib\orasql11.lib" aecom85n.lib aeuexit85n.lib iefmbt85n.lib >> aecdb.lnk
To resolve the problem remove the extra double quote (") from the end of the full path to orasql11.lib i.e.
if "%iefdbms%" == "oracle11" echo C:\app\Administrator\product\11.2.0\client_1\precomp\lib\orasql11.lib aecom85n.lib aeuexit85n.lib iefmbt85n.lib >> aecdb.lnk
Alternatively do not modify mkdbs.bat and simply add C:\app\Administrator\product\11.2.0\client_1\precomp\lib\ to the LIB environment variable before running mkdbs.bat i.e.
set LIB=E:\app\Administrator\product\11.2.0\client_1\precomp\lib;%LIB%