Re: Dropping libdv i686

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Feb 25, 2024 at 08:41:38PM +0100, Antonio T. sagitter wrote:
> libdv is currently failing in i686 architectures, it could be dropped.

Ugh, why?
The bug is not from upstream, but from the downstream libdv-pic.patch
patch, and is on i686 only because those changes are in i686 specific code.
Normally one wouldn't introduce these extra pointer arguments but instead
just use proper PIC accesses to the symbol, e.g. you could compile
extern unsigned char dv_quant_shifts[22][4];
int foo (void) { return dv_quant_shifts[0][0]; }
with -O2 -m32 -march=i686 -fpic -S and see what is needed.
Anyway, if it is done the way the patch does that, the assembly doesn't
care that much what exact pointer it gets as long as it points to the
dv_quant_shifts array.
So one fix is change the
+extern void _dv_quant_88_inverse_x86(dv_coeff_t *block,int qno,int klass, uint8_t *offset, uint8_t *shifts);
line in the patch to
+extern void _dv_quant_88_inverse_x86(dv_coeff_t *block,int qno,int klass, uint8_t *offset, uint8_t (*shifts)[4]);
and yet another would be to change
+      _dv_quant_88_inverse_x86(mb->b[i].coeffs,mb->qno,mb->b[i].class_no,dv_quant_offset,dv_quant_shifts);
and
+	_dv_quant_88_inverse_x86(bl->coeffs,mb->qno,bl->class_no,dv_quant_offset,dv_quant_shifts);
lines in the patch to
+      _dv_quant_88_inverse_x86(mb->b[i].coeffs,mb->qno,mb->b[i].class_no,dv_quant_offset,(uint8_t *)dv_quant_shifts);
and
+	_dv_quant_88_inverse_x86(bl->coeffs,mb->qno,bl->class_no,dv_quant_offset,(uint8_t *)dv_quant_shifts);
Fixing this is less work than dropping it from one arch and dealing with the
fallout.

	Jakub
--
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux