Bug 234745 - multimedia/mplayer: fails to build on i386 with lld as system linker
Summary: multimedia/mplayer: fails to build on i386 with lld as system linker
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: Thomas Zander
URL:
Keywords:
Depends on:
Blocks: 214864
  Show dependency treegraph
 
Reported: 2019-01-08 13:57 UTC by Ed Maste
Modified: 2019-01-09 17:00 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Maste freebsd_committer 2019-01-08 13:57:36 UTC
In PR comment 187 jbeich@ writes:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214864#c187

FreeType is disabled because iconv() detection fails which itself fails due to auto-enabled -pie. On amd64 configure appends -fpie, assuming shared libraries are built with -fPIC, but on i386 this is not required.

$ cat >a.c
#include <stdio.h>

int main()
{
  printf("Hello World\n");
  return 0;
}

$ cc a.c -pie
/usr/bin/ld: error: can't create dynamic relocation R_386_32 against symbol: .L.str in readonly segment; recompile object files with -fPIC
>>> defined in /tmp/a-5c8390.o
>>> referenced by a.c
>>>               /tmp/a-5c8390.o:(main)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
Comment 1 Ed Maste freebsd_committer 2019-01-08 14:13:21 UTC
http://package18.nyi.freebsd.org/build.html?mastername=headi386PR214864-default&build=2019-01-05_21h00m02s
http://package18.nyi.freebsd.org/data/headi386PR214864-default/2019-01-05_21h00m02s/logs/errors/mplayer-1.3.0.20181224.log

> Checking for GUI ... yes 
> 
> Error: The GUI requires either FreeType or bitmap font support.
>
> Check "config.log" if you do not understand why it failed.
> ===>  Script "configure" failed unexpectedly.
Comment 2 Thomas Zander freebsd_committer 2019-01-09 14:45:27 UTC
Adding

LDFLAGS_i386+=	-Wl,-z,notext

to ${PORTSDIR}/multimedia/mplayer/Makefile.options

fixes the build with lld and produces a (on my test setup) working binary of mplayer and mencoder.

Ed: From previous discussions around the lld topic I understood that this is the preferred solution. Could you quickly confirm, then I'll commit this.

Thank you.
Comment 3 Ed Maste freebsd_committer 2019-01-09 15:03:42 UTC
(In reply to Thomas Zander from comment #2)

Yes, this is the most straightforward option and configures lld to act as ld.bfd did, so is a minimal change.
Comment 4 Thomas Zander freebsd_committer 2019-01-09 17:00:54 UTC
Committed in r489814, see bug #214864