Bug 255590 - multimedia/aom: ld: error: undefined symbol: environ
Summary: multimedia/aom: ld: error: undefined symbol: environ
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jan Beich
URL:
Keywords: needs-qa
Depends on:
Blocks:
 
Reported: 2021-05-04 10:32 UTC by ice
Modified: 2021-05-11 01:55 UTC (History)
3 users (show)

See Also:
jbeich: maintainer-feedback+
jbeich: merge-quarterly+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ice 2021-05-04 10:32:28 UTC
ports r10-eol-85704-gf368d239f06a, same issue on 12.2 and 13.0 (with or without MAKE_JOBS_UNSAFE). Seems to be something new with AOM 3.1.0 as 3.0.0 was fine.

/usr/bin/c++ -fPIC -O2 -pipe -fstack-protector-strong -isystem ... -o libaom.so.3.1.0 ...

On 12.2:

ld: error: undefined symbol: environ
>>> referenced by tls.c:435 (/usr/src/lib/libc/gen/tls.c:435) 
>>>               tls.o:(_init_tls) in archive /usr/lib/libc.a
>>> referenced by exec.c:78 (/usr/src/lib/libc/gen/exec.c:78)
>>>               exec.o:(execl) in archive /usr/lib/libc.a
>>> referenced by exec.c:145 (/usr/src/lib/libc/gen/exec.c:145)
>>>               exec.o:(execlp) in archive /usr/lib/libc.a
>>> referenced by exec.c:145 (/usr/src/lib/libc/gen/exec.c:145)
>>>               exec.o:(execvp) in archive /usr/lib/libc.a
>>> referenced by exec.c:138 (/usr/src/lib/libc/gen/exec.c:138)
>>>               exec.o:(execv) in archive /usr/lib/libc.a
>>> referenced by exec.c:293 (/usr/src/lib/libc/gen/exec.c:293)
>>>               exec.o:(execvP) in archive /usr/lib/libc.a
>>> referenced by getenv.c:250 (/usr/src/lib/libc/stdlib/getenv.c:250)
>>>               getenv.o:(__clean_env_destructor) in archive /usr/lib/libc.a
>>> referenced by getenv.c:251 (/usr/src/lib/libc/stdlib/getenv.c:251)
>>>               getenv.o:(__clean_env_destructor) in archive /usr/lib/libc.a
>>> referenced by getenv.c:440 (/usr/src/lib/libc/stdlib/getenv.c:440)
>>>               getenv.o:(getenv) in archive /usr/lib/libc.a
>>> referenced by getenv.c:546 (/usr/src/lib/libc/stdlib/getenv.c:546)
>>>               getenv.o:(__merge_environ) in archive /usr/lib/libc.a
>>> referenced 12 more times

ld: error: undefined symbol: __progname
>>> referenced by getprogname.c:16 (/usr/src/lib/libc/gen/getprogname.c:16)
>>>               getprogname.o:(_getprogname) in archive /usr/lib/libc.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)

On 13.0:

: && /usr/bin/c++ -fPIC -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/includeld: error: undefined symbol: environ
>>> referenced by auxv.c:54 (/usr/src/lib/libc/gen/auxv.c:54)
>>>               auxv.o:(init_aux_vector_once) in archive /usr/lib/libc.a
>>> referenced by tls.c:434 (/usr/src/lib/libc/gen/tls.c:434)
>>>               tls.o:(_init_tls) in archive /usr/lib/libc.a
>>> referenced by getenv.c:250 (/usr/src/lib/libc/stdlib/getenv.c:250)
>>>               getenv.o:(__clean_env_destructor) in archive /usr/lib/libc.a
>>> referenced 19 more times

ld: error: undefined symbol: __progname
>>> referenced by getprogname.c:16 (/usr/src/lib/libc/gen/getprogname.c:16)
>>>               getprogname.o:(_getprogname) in archive /usr/lib/libc.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
Comment 1 Jan Beich freebsd_committer freebsd_triage 2021-05-04 10:48:38 UTC
Does it build if you disable VMAF option?
Comment 2 ice 2021-05-04 11:42:43 UTC
(In reply to Jan Beich from comment #1)

Yes, both do build with VMAF=off.
Comment 3 Dima Panov freebsd_committer freebsd_triage 2021-05-08 02:23:34 UTC
(In reply to Jan Beich from comment #1)
Confirm, build fails with VMAF enabled. When it set to off, aom builds fine.
Comment 4 commit-hook freebsd_committer freebsd_triage 2021-05-11 01:48:11 UTC
A commit in branch 2021Q2 references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=4e987bb701977bc814d83205a8908440abc200dd

commit 4e987bb701977bc814d83205a8908440abc200dd
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2021-05-11 01:26:33 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2021-05-11 01:45:49 +0000

    multimedia/aom: unbreak VMAF after f40d123e50db

    ld: error: undefined symbol: environ
    >>> referenced by auxv.c:54 (/usr/src/lib/libc/gen/auxv.c:54)
    >>>               auxv.o:(init_aux_vector_once) in archive /usr/lib/libc.a
    >>> referenced by tls.c:443 (/usr/src/lib/libc/gen/tls.c:443)
    >>>               tls.o:(_init_tls) in archive /usr/lib/libc.a
    >>> referenced by getenv.c:250 (/usr/src/lib/libc/stdlib/getenv.c:250)
    >>>               getenv.o:(__clean_env_destructor) in archive /usr/lib/libc.a
    >>> referenced 17 more times

    ld: error: undefined symbol: __progname
    >>> referenced by getprogname.c:16 (/usr/src/lib/libc/gen/getprogname.c:16)
    >>>               getprogname.o:(_getprogname) in archive /usr/lib/libc.a
    c++: error: linker command failed with exit code 1 (use -v to see invocation)

    PR:             255590
    Reported by:    ice@extreme.hu, fluffy
    Regressed by:   https://aomedia.googlesource.com/aom/+/b53a4d710849%5E!/

    (cherry picked from commit 27a2b131c71afe2977b1f8263225872f75614ea3)

 multimedia/aom/Makefile | 3 +++
 multimedia/aom/distinfo | 2 ++
 2 files changed, 5 insertions(+)
Comment 5 commit-hook freebsd_committer freebsd_triage 2021-05-11 01:48:12 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=27a2b131c71afe2977b1f8263225872f75614ea3

commit 27a2b131c71afe2977b1f8263225872f75614ea3
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2021-05-11 01:26:33 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2021-05-11 01:45:02 +0000

    multimedia/aom: unbreak VMAF after f40d123e50db

    ld: error: undefined symbol: environ
    >>> referenced by auxv.c:54 (/usr/src/lib/libc/gen/auxv.c:54)
    >>>               auxv.o:(init_aux_vector_once) in archive /usr/lib/libc.a
    >>> referenced by tls.c:443 (/usr/src/lib/libc/gen/tls.c:443)
    >>>               tls.o:(_init_tls) in archive /usr/lib/libc.a
    >>> referenced by getenv.c:250 (/usr/src/lib/libc/stdlib/getenv.c:250)
    >>>               getenv.o:(__clean_env_destructor) in archive /usr/lib/libc.a
    >>> referenced 17 more times

    ld: error: undefined symbol: __progname
    >>> referenced by getprogname.c:16 (/usr/src/lib/libc/gen/getprogname.c:16)
    >>>               getprogname.o:(_getprogname) in archive /usr/lib/libc.a
    c++: error: linker command failed with exit code 1 (use -v to see invocation)

    PR:             255590
    Reported by:    ice@extreme.hu, fluffy
    Regressed by:   https://aomedia.googlesource.com/aom/+/b53a4d710849%5E!/

 multimedia/aom/Makefile | 3 +++
 multimedia/aom/distinfo | 2 ++
 2 files changed, 5 insertions(+)
Comment 6 Jan Beich freebsd_committer freebsd_triage 2021-05-11 01:55:39 UTC
Sorry, I was aware but kinda lacked time to bisect. It was a random upstream regression: linking static library into shared and causing lots of funny side-effects. Before v3.0.0 the port fixed it via files/patch-CMakeLists.txt