2011/9/6 Måns Rullgård <[email protected]>:
> Sean McGovern <[email protected]> writes:
>
>> The Solaris linker will correctly mark an executable with each instruction 
>> set it
>> encounters when building an executable. However, our libraries have their own
>> functionality and guards for processor-specific code.
>>
>> So, instead suppress creation of the hardware capabilities ELF section.
>> ---
>>  configure |    1 +
>>  1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/configure b/configure
>> index d5635f4..b852274 100755
>> --- a/configure
>> +++ b/configure
>> @@ -2369,6 +2369,7 @@ case $target_os in
>>          enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS"
>>          network_extralibs="-lsocket -lnsl"
>>          add_cppflags -D__EXTENSIONS__
>> +        echo "hwcap_1 = OVERRIDE;" > mapfile && add_ldflags -Wl,-M,mapfile
>>          nm_opts='-P -g'
>>          ;;
>>      netbsd)
>> --
>
> Not all of our mmx/sse use is guarded at runtime, e.g. those in
> intreadwrite.h.  Are you certain this doesn't relax the requirements too
> much?

It would be easy enough to modify this to mark the binary with only
those instruction sets that we
can require -- I wasn't certain what those were.

The issue I had when I actually succeeded in building with Solaris
Studio was that the binary was marked for (among other things) 3DNow
and 3DNowx which my Core 2 Duo cannot handle, and thus the avconv
binary would not execute.

Building the binary with gcc does not result in the hardware
capabilities ELF section as gas does not create it.

Should I go ahead and modify this to mark it with MMX and SSE only? Is
that a reasonable baseline requirement?

-- Sean
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to