bug-automake
[Top][All Lists]
Advanced

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

toolchain issues when building *.o files from *.S files


From: deadlyhead
Subject: toolchain issues when building *.o files from *.S files
Date: 14 Aug 2005 20:00:56 -0000

>Category:       automake
>Synopsis:       toolchain issues when building *.o files from *.S files
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Class:          sw-bug
>Submitter-Id:   net
>Originator:     address@hidden
>Release:        automake-1.9
>Environment:
Debian GNU/Linux i686; autoconf 2.59; libtools 1.5.98; gcc 3.4.3 (Debian); GNU 
make 3.80 (Debian)
>Description:
This is coming from the developers of Inkscape [http://www.inkscape.org]

When attempting to compile Inkscape from CVS with Intel's MMX optimization, GNU 
make has difficulty with the *.o files pertaining to MMX, expecting to find 
them in the same directory as their corresponding *.S files.  The issue is that 
during compile, the *.o files are placed in the directory _one level up_ from 
the *.S files, causing make to throw an error and exit.

Attached is the make information having to do with the errors.  While it is 
acknowledged that this may be an error in the Inkscape compile process, this 
issue only arises with automake 1.9.x, not automake 1.7.x or 1.8.x, and only 
with a very specific set of files, leaving us to believe that this may be a 
very special-case bug with automake 1.9.x.
>How-To-Repeat:
Utilizing the build-chain indicated in the environment field, attempt to build 
Inkscape from CVS using automake 1.9.x.

1) cvs -d :pserver:address@hidden:/cvsroot/inkscape login
2) Password: **just hit ENTER here**
3) cvs -z3 -d :pserver:address@hidden:/cvsroot/inkscape co -P inkscape
4) cd inkscape
5) ./autogen.sh
6) ./configure
7) make

Partway through make, the error will occur, if you have an MMX processor.
>Fix:
I have found three ways to get around this issue:

 1) Compile Inkscape without mmx optimization (./configure --disable-mmx)
 2) Manually move all *_mmx*.o files from @TOPSRCDIR@/src/ to 
@TOPSRCDIR@/src/libnr/ when make fails (:@TOPSRCDIR@/src# mv ./*_mmx*.o 
./libnr); run make again
 3) Regress to 1.8 series of automake (the simplest and most reliable in the 
end)

These are obviously workarounds, not fixes. 
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="inkscape_err_20050806.txt"
Content-Disposition: inline; filename="inkscape_err_20050806.txt"

/* make output and exit errors */
make  all-recursive
make[1]: Entering directory `/usr/src/inkscape'
Making all in src
make[2]: Entering directory `/usr/src/inkscape/src'
gcc  -g -O2 -c libnr/have_mmx.S
gcc  -g -O2 -c libnr/nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP.S
gcc  -g -O2 -c libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S
gcc  -g -O2 -c libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM.S
gcc  -g -O2 -c libnr/nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P.S
rm -f libnr/libnr.a
ar cru libnr/libnr.a libnr/nr-blit.o libnr/nr-compose-transform.o 
libnr/nr-compose.o libnr/nr-gradient.o libnr/nr-matrix-div.o 
libnr/nr-matrix-fns.o libnr/nr-matrix-rotate-ops.o libnr/nr-matrix-scale-ops.o 
libnr/nr-matrix-translate-ops.o libnr/nr-matrix.o libnr/nr-object.o 
libnr/nr-path.o libnr/nr-pixblock-line.o libnr/nr-pixblock-pattern.o 
libnr/nr-pixblock-pixel.o libnr/nr-pixblock.o libnr/nr-point-fns.o 
libnr/nr-rect-l.o libnr/nr-rect.o libnr/nr-rotate-fns.o 
libnr/nr-rotate-matrix-ops.o libnr/nr-scale-matrix-ops.o 
libnr/nr-scale-translate-ops.o libnr/nr-svp-render.o libnr/nr-svp.o 
libnr/nr-translate-matrix-ops.o libnr/nr-translate-scale-ops.o 
libnr/nr-translate-rotate-ops.o libnr/nr-types.o libnr/nr-values.o 
libnr/have_mmx.o libnr/nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP.o 
libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.o 
libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM.o 
libnr/nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P.o
make[2]: Leaving directory `/usr/src/inkscape/src'
make[1]: Leaving directory `/usr/src/inkscape'
ar: libnr/have_mmx.o: No such file or directory
make[2]: *** [libnr/libnr.a] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]