Re: Symbol referencing errors
Andrew Gierth <andrew@tao11.riddles.org.uk>
From: Andrew Gierth <andrew@tao11.riddles.org.uk>
To: Li Japin <japinli@hotmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
"pgsql-hackers\@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2019-04-23T05:23:13Z
Lists: pgsql-hackers
>>>>> "Tom" == Tom Lane <tgl@sss.pgh.pa.us> writes: >> When I compile PostgreSQL-11.2 on SmartOS, I find the following errors: >> ... >> ld: warning: symbol referencing errors Tom> Yeah, our SmartOS buildfarm members show those warnings too, eg Tom> https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=damselfly&dt=2019-04-22%2010%3A00%3A15&stg=make-contrib Tom> AFAICT they're harmless, so my advice is just ignore them. Tom> If you're sufficiently annoyed by them to find the cause Tom> and try to fix it, go ahead, but I haven't heard anyone Tom> else worried about it. It might be that SmartOS wants Tom> something like what we have to do on macOS and AIX, Tom> ie provide the core postgres executable in some sort of Tom> linker switch while linking shlibs that will be loaded Tom> by that executable. I wonder if it's the use of -Bsymbolic that causes this (buildfarm logs don't seem to go back far enough to check). (Note to original poster: -Bsymbolic is there for a reason, you can't just remove it - but see below.) Since this is an ELF platform - arguably the closest thing to the original reference ELF platform, at least by descent - it should not require the kinds of tricks used on macOS and AIX; but we haven't done the work needed to test using version scripts in place of -Bsymbolic for fixing the symbol conflict problems. That ought to be a relatively straightforward project for someone with access to a system to test on (and I'm happy to advise on it). The thing to do would be to try and copy the changes made to the *BSD ports in commit e3d77ea6b instead of the change made in 4fa3741d1. The contrib/postgres_fdw tests should show whether it worked or not. -- Andrew (irc:RhodiumToad)
Commits
-
solaris: Use versioning scripts instead of -Bsymbolic
- 3fb0687d328b 16.0 landed
-
Prevent mis-linking of src/port and src/common functions on *BSD.
- e3d77ea6b4e4 12.0 cited