2011/7/25 Måns Rullgård <[email protected]>:
> Sean McGovern <[email protected]> writes:
>
>> On 7/25/11, Måns Rullgård <[email protected]> wrote:
>>> Sean McGovern <[email protected]> writes:
>>>
>>>> Sun's compiler does not like much of the libav inline assembly, so disable
>>>> it by default.
>>>> ---
>>>>  configure |    1 +
>>>>  1 files changed, 1 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/configure b/configure
>>>> index a83d339..2b41a4c 100755
>>>> --- a/configure
>>>> +++ b/configure
>>>> @@ -2016,6 +2016,7 @@ elif $cc -V 2>&1 | grep -q Sun; then
>>>>      DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "1s,^.*: ,$@: ," -e
>>>> "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)'
>>>>      DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -xM1'
>>>>      add_ldflags -xc99
>>>> +    disable asm
>>>>      speed_cflags='-O5'
>>>>      size_cflags='-O5 -xspace'
>>>>      filter_cflags=suncc_flags
>>>> --
>>>
>>> This disables *all* asm, even yasm, which is probably not what you want.
>>> The proper solution is to put all inline asm under #if HAVE_INLINE_ASM
>>> as is done for most other architectures.
>>>
>>> --
>>> Måns Rullgård
>>> [email protected]
>>
>>>
>>
>> OK, discard this patch then. I will see what I can do about individual 
>> problems.
>>
>> I started by investigating libavutil/x86/cpu.c last night.. It's
>> causing an ICE on line 77 -- a call to the cpuid() macro. I'm not at
>> the machine right now so I can't provide the error message. Oddly
>> enough if I disable optimization or just comment out that line, it
>> compiles fine -- the other calls to cpuid() don't have an issue.
>
> Gah, I forgot inline asm is used for cpuid, which in turn is required to
> enable any of the other asm functions.
>
>> I _think_ Sun CC is barfing on the union defined on line 48:
>>
>> union { int i[3]; char c[12]; } version;
>>
>> ...especially because if I replace each of the union elements with
>> separate ints, it again compiles, with obviously incorrect results as
>> the union is now only zeroes.
>
> Does it give correct results if you store those values into the union
> after the cpuid() call?
>

Most likely yes, will test and send a patch if it works.

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

Reply via email to