BUG #13497: Build with dtrace fails

Started by Nonamealmost 11 years ago3 messagesbugs
Jump to latest
#1Noname
dmilith@gmail.com

The following bug has been logged on the website:

Bug reference: 13497
Logged by: Daniel (dmilith) Dettlaff
Email address: dmilith@gmail.com
PostgreSQL version: 9.4.4
Operating system: FreeBSD 10.1
Description:

utils/probes.o: In function `dtrace_dof_init':
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0xd7):
undefined reference to `elf_version'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x10f):
undefined reference to `elf_begin'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x131):
undefined reference to `elf_getshdrstrndx'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x13b):
undefined reference to `elf_nextscn'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x1a2):
undefined reference to `elf_getdata'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x1ce):
undefined reference to `elf_getdata'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x1e1):
undefined reference to `elf_getdata'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x207):
undefined reference to `gelf_getshdr'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x22b):
undefined reference to `elf_strptr'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x24e):
undefined reference to `elf_nextscn'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x5df):
undefined reference to `elf_end'
utils/probes.o: In function `fixsymbol':
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x79b):
undefined reference to `gelf_getsym'
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0x7d3):
undefined reference to `elf_strptr'
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
Makefile:57: recipe for target 'postgres' failed

To fix this, I needed to add -lelf to LDFLAGS. The build passes.

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Noname (#1)
Re: BUG #13497: Build with dtrace fails

dmilith@gmail.com wrote:

utils/probes.o: In function `dtrace_dof_init':
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0xd7):
undefined reference to `elf_version'

clang: error: linker command failed with exit code 1 (use -v to see
invocation)
Makefile:57: recipe for target 'postgres' failed

To fix this, I needed to add -lelf to LDFLAGS. The build passes.

Grumble.

Isn't this a platform bug? I mean, if you specify to build with dtrace,
maybe the -lelf should be implicit, or something. I assume there's a
manpage in FreeBSD for this stuff, what does it say?

If we need to workaround, I guess we could add a SEARCH_AC_LIBS to
configure when DTrace is specified (maybe only on freebsd?).

--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#3Lacey Powers
lacey.leanne@gmail.com
In reply to: Alvaro Herrera (#2)
Re: BUG #13497: Build with dtrace fails

On 07/22/2015 13:13, Alvaro Herrera wrote:

dmilith@gmail.com wrote:

utils/probes.o: In function `dtrace_dof_init':
/usr/src/cddl/lib/drti/../../../cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:(.text+0xd7):
undefined reference to `elf_version'
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
Makefile:57: recipe for target 'postgres' failed

To fix this, I needed to add -lelf to LDFLAGS. The build passes.

Grumble.

Isn't this a platform bug? I mean, if you specify to build with dtrace,
maybe the -lelf should be implicit, or something. I assume there's a
manpage in FreeBSD for this stuff, what does it say?

If we need to workaround, I guess we could add a SEARCH_AC_LIBS to
configure when DTrace is specified (maybe only on freebsd?).

Hi All,

Yes, this is a known oddity with FreeBSD specifically, not with PostgreSQL.

Discussed here:

https://lists.freebsd.org/pipermail/freebsd-dtrace/2015-January/000342.html

And addressed in the ports tree as well:

https://svnweb.freebsd.org/ports/head/databases/postgresql92-server/Makefile?view=markup#l168

Though, sadly, the need to link -lelf is not clear if you're building
from source and not using the ports tree, unless you do some searching
around.

Hope that helps,

Lacey

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs