Обсуждение: BUG #13497: Build with dtrace fails

Поиск
Список
Период
Сортировка

BUG #13497: Build with dtrace fails

От
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.

Re: BUG #13497: Build with dtrace fails

От
Alvaro Herrera
Дата:
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

Re: BUG #13497: Build with dtrace fails

От
Lacey Powers
Дата:
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