Bug 56073
| Summary: | automake fails to pick up asm files | ||
|---|---|---|---|
| Product: | [Retired] Red Hat Raw Hide | Reporter: | Bernhard Rosenkraenzer <bero> |
| Component: | automake | Assignee: | Jens Petersen <petersen> |
| Status: | CLOSED WORKSFORME | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 1.0 | ||
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2001-12-14 10:54:31 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
Actually, if you get such unresolved references, it looks like __attribute__((alias())) works properly. I'd bet it is NASM crap that screwes things up. Can you look what readelf -s x86p_32.lo shows? You're right, looks like an automake bug after all. The file isn't generated at all (even though x86p_32.asm is listed in Makefile.am); instead, an empty libhermes.la is created. Debugging some more. Automake fails to pick up the asm files; it creates an empty libhermes_la_OBJECTS rather than listing anything generated from the asm files. Used to work in automake 1.4, and the Makefile.am looks correct. To my knowledge automake has only ever supported ".s" and ".S" as extensions for assembly code. ".asm" has never been supported. I looked at the most recent 1.4 sources (from the 1.4 branch in automake cvs) to verify this. The documentation is pretty bad here. It doesn't mention what extensions are supported. I'll fix this shortly. Does the Makefile.am have a `.asm.o' rule and `SUFFIXES = asm'? If so then that probably ought to work, depending on some other context (i.e., whether libtool is in use). (I can't easily dig up the Makefile.am in question.) So just to be confirm: the problem is that SDL doesn't get built properly when using automake-1.5? Hmm, I rebuilt and installed SDL-1.2.2-3 with automake-1.5 (just replacing "./autogen.sh" by "autoreconf" in the spec) and then rebuilt smpeg-0.4.4-3 without any problem. |
Description of Problem: I'm getting this when trying to compile anything that links with SDL: /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_24RGB888' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p16_16BGR555' /usr/lib/libSDL.so: undefined reference to `_ConvertMMXpII32_24RGB888' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_32RGBA888' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_16RGB555' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p16_8RGB332' /usr/lib/libSDL.so: undefined reference to `_ConvertMMXpII32_16BGR555' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_16BGR555' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_16BGR565' /usr/lib/libSDL.so: undefined reference to `_Hermes_X86_CPU' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_24BGR888' /usr/lib/libSDL.so: undefined reference to `_ConvertMMXpII32_16RGB565' /usr/lib/libSDL.so: undefined reference to `_ConvertMMXpII32_16RGB555' /usr/lib/libSDL.so: undefined reference to `_ConvertMMXpII32_16BGR565' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p16_16RGB555' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_16RGB565' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_32BGR888' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p16_16BGR565' /usr/lib/libSDL.so: undefined reference to `_ConvertX86' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_32BGRA888' /usr/lib/libSDL.so: undefined reference to `_ConvertMMX' /usr/lib/libSDL.so: undefined reference to `_ConvertX86p32_8RGB332' SDL defines those symbols this way: [root@parma SDL-1.2.2]# grep -r "_ConvertX86p32_24RGB888" . ./src/hermes/x86p_32.asm:GLOBAL _ConvertX86p32_24RGB888 ./src/hermes/x86p_32.asm:_ConvertX86p32_24RGB888: ./src/hermes/HeadX86.h: void ConvertX86p32_24RGB888() __attribute__ ((alias ("_ConvertX86p32_24RGB888"))); Version-Release number of selected component (if applicable): 3.1-0.7 Additional Information: Please re-assign to SDL if the syntax of __attribute__ alias has changed.