Bug 56073 - automake fails to pick up asm files
Summary: automake fails to pick up asm files
Status: CLOSED WORKSFORME
Alias: None
Product: Red Hat Raw Hide
Classification: Retired
Component: automake (Show other bugs)
(Show other bugs)
Version: 1.0
Hardware: All Linux
medium
medium
Target Milestone: ---
Assignee: Jens Petersen
QA Contact:
URL:
Whiteboard:
Keywords:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2001-11-12 15:25 UTC by Bernhard Rosenkraenzer
Modified: 2008-05-01 15:38 UTC (History)
0 users

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: ---


Attachments (Terms of Use)

Description Bernhard Rosenkraenzer 2001-11-12 15:25:10 UTC
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.

Comment 1 Jakub Jelinek 2001-11-12 15:39:25 UTC
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?

Comment 2 Bernhard Rosenkraenzer 2001-11-12 15:57:46 UTC
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.



Comment 3 Bernhard Rosenkraenzer 2001-11-12 16:03:46 UTC
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.


Comment 4 Tom Tromey 2001-11-26 19:49:39 UTC
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.)


Comment 5 Jens Petersen 2001-12-14 10:16:51 UTC
So just to be confirm: the problem is that SDL doesn't get built properly when
using automake-1.5?

Comment 6 Jens Petersen 2001-12-14 10:54:25 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.