I write programs based on oracle OCI client library and zlib using c++ on AIX, and in my program , I want to use some functions in libz.a, so I had to link my programs with libclntsh.a and libz.a;
I want to upgrade my oracle server to 12 version, so I want to upgrade my OCI client to 12 also;
But when I linked my program, it shows many functions of libclntsh.a duplicate with libz.a, for example: deflate, deflateEnd, deflateCopy, deflate...........；
This is very dangerous , for example, In my program, I want to use the deflate function in libz.a; so If I link my program using the library sequence -lclntsh -lz, then the deflate function in my program will use the deflate function in the libclntsh.a , but not in the libz.a；Although I can link it using the library sequence -lz -lclntsh , but it also show duplicate, and I think this is not the solution to the problem;
And I think the cause of the problem is that the libclntsh.a uses the zlib unit deflate.c(maybe has also other units), and the programmer of libclntsh.a simply add the deflate.c unit into the libclntsh.a, and not change the function names.
So the user of OCI client library of version 12 using C++, When the user also had to use the libz.a library, it may take a lot of risk , because in the actual situation, program may be more complicated,and these duplicate functions may cause more serious problems.
So If the libcnltsh.a uses the files from zlib, I think it may not simply copy the files into libclntsh, it must change the function names, for example , add prefix to the functions names.
I think this is a urgent bug of OCI client library of 12 version , I hope it can be solved quickly.