Bug 56073 - automake fails to pick up asm files
automake fails to pick up asm files
Status: CLOSED WORKSFORME
Product: Red Hat Raw Hide
Classification: Retired
Component: automake (Show other bugs)
1.0
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jens Petersen
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2001-11-12 10:25 EST by Bernhard Rosenkraenzer
Modified: 2008-05-01 11:38 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2001-12-14 05:54:31 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Bernhard Rosenkraenzer 2001-11-12 10:25:10 EST
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 10:39:25 EST
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 10:57:46 EST
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 11:03:46 EST
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 14:49:39 EST
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 05:16:51 EST
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 05:54:25 EST
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.