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
