[Top][All Lists]
[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
- toolchain issues when building *.o files from *.S files,
deadlyhead <=