DevHeads.net

Compilation fails with XLC in AIX

Hi,

I am compiling PostgreSQL ODBC driver 10.01.0000 in AIX using XLC compiler.
Compilation fails with the following error.

ld: 0711-317 ERROR: Undefined symbol: .getExeName
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information.
Makefile:573: recipe for target 'psqlodbcw.la' failed
gmake[1]: *** [psqlodbcw.la] Error 8
gmake[1]: Leaving directory
'/home/root/postgres_source/psqlodbc-10.01.0000'
Makefile:479: recipe for target 'all' failed
gmake: *** [all] Error 2

getExeName is no more there after this commit "Move the implemetation of
GetExeName() from psqlodbc.c(psqlsetup.c) to mylog.c"

The commit missed out cleaning it from this path (in file psqlodbc.c)

+175 #else /* not
__GNUC__ */
+176
+177 /* Shared library initialization on non-gcc systems. */
+178 BOOL
+179 _init(void)
+180 {
+181 getExeName();
+182 initialize_global_cs();
+183 return TRUE;
+184 }

Because of this , the compilation fails for non-gcc systems ( in this case
AIX with XLC ). I am attaching a patch here that will fix the issue.

(See attached file: Fix-build-for-non-gcc-systems.patch)

Thanks
Ayappan P

Comments

Re: Compilation fails with XLC in AIX

By Inoue, Hiroshi at 03/14/2018 - 02:41

Hi Ayappan,

Thanks for your bug report.
I would commit the patch.

regards,
Hiroshi Inoue

On 2018/03/13 0:10, Ayappan P2 wrote:

Re: Compilation fails with XLC in AIX

By Ayappan P2 at 03/14/2018 - 09:54

Thanks for the commit.

Regards
Ayappan P

Cc: <a href="mailto:pgsql- ... at postgresql dot org">pgsql- ... at postgresql dot org</a>

Hi Ayappan,

Thanks for your bug report.
I would commit the patch.

regards,
Hiroshi Inoue

Hi,

I am compiling PostgreSQL ODBC driver 10.01.0000 in AIX using XLC
compiler. Compilation fails with the following error.

ld: 0711-317 ERROR: Undefined symbol: .getExeName
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information.
Makefile:573: recipe for target 'psqlodbcw.la' failed
gmake[1]: *** [psqlodbcw.la] Error 8
gmake[1]: Leaving directory
'/home/root/postgres_source/psqlodbc-10.01.0000'
Makefile:479: recipe for target 'all' failed
gmake: *** [all] Error 2

getExeName is no more there after this commit "Move the implemetation
of GetExeName() from psqlodbc.c(psqlsetup.c) to mylog.c"

The commit missed out cleaning it from this path (in file psqlodbc.c)

+175 #else /* not __GNUC__ */
+176
+177 /* Shared library initialization on non-gcc systems. */
+178 BOOL
+179 _init(void)
+180 {
+181 getExeName();
+182 initialize_global_cs();
+183 return TRUE;
+184 }

Because of this , the compilation fails for non-gcc systems ( in this
case AIX with XLC ). I am attaching a patch here that will fix the
issue.

(See attached file: Fix-build-for-non-gcc-systems.patch)

Thanks

Ayappan P