[Bug 24402] New: winegcc does not properly pass cmdline args, e.g. -Wb,--as-cmd="as --32"

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Sep 14 16:49:40 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=24402

           Summary: winegcc does not properly pass cmdline args, e.g.
                    -Wb,--as-cmd="as --32"
           Product: Wine
           Version: 1.3.2
          Platform: x86-64
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: build-env
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: armin.kazmi at tu-dortmund.de


When trying to build a simple test.c file with winegcc, winegcc fails to
properly pass over commandline arguments to winebuild.

test.c only contains an emtpy main function. In practise this error was
verified with the vst plugin of lmms.

Test cmdline: 
winegcc test.c -o test -m32 -Wb,--as-cmd="as --32",--ld-cmd="ld -melf_i386"

Resulting output:
winebuild: as --32 failed with status 1
winegcc: winebuild failed

Another testcase

Cmdline:
winegcc test.c -o test -m32 -Wb,--as-cmd="as ",--ld-cmd="ld "

Output:
winebuild: as  failed with status 1
winegcc: winebuild failed

Running the same first cmdline with the -v option reveals the error:

winegcc test.c -o test -m32 -Wb,--as-cmd="as --32",--ld-cmd="ld -melf_i386" -v

-----
gcc -m32 -fshort-wchar -DWINE_UNICODE_NATIVE -D_REENTRANT -fPIC -DWIN32
-D_WIN32 -D__WIN32 -D__WIN32__ -D__WINNT -D__WINNT__
-D__stdcall=__attribute__((__stdcall__)) -D__cdecl=__attribute__((__cdecl__))
-D_stdcall=__attribute__((__stdcall__)) -D_cdecl=__attribute__((__cdecl__))
-D__fastcall=__attribute__((__fastcall__))
-D_fastcall=__attribute__((__fastcall__)) -D__declspec(x)=__declspec_##x
-D__declspec_align(x)=__attribute__((aligned(x)))
-D__declspec_allocate(x)=__attribute__((section(x)))
-D__declspec_deprecated=__attribute__((deprecated))
-D__declspec_dllimport=__attribute__((dllimport))
-D__declspec_dllexport=__attribute__((dllexport))
-D__declspec_naked=__attribute__((naked))
-D__declspec_noinline=__attribute__((noinline))
-D__declspec_noreturn=__attribute__((noreturn))
-D__declspec_nothrow=__attribute__((nothrow))
-D__declspec_novtable=__attribute__(())
-D__declspec_selectany=__attribute__((weak)) -D__declspec_thread=__thread
-D__int8=char -D__int16=short -D__int32=int -D__int64=long long -D__WINE__ -c
-o test-5hFdhw.o -m32 -v test.c -isystem/usr/include/wine/windows 


STRIPPED

 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/cc1 -fpreprocessed
/home/armin/.ccache/tmp/test.tmp.Armin-Lappy.24225.i -quiet -dumpbase
test.tmp.Armin-Lappy.24225.i -m32 -mtune=generic -march=x86-64 -auxbase-strip
/home/armin/.ccache/8/f/e763402f4ba107ebe0a46887176150-5354.o.tmp.Armin-Lappy.24225
-version -fshort-wchar -fPIC -o /tmp/cc1MonbO.s

STRIPPED

winebuild -v -fno-asynchronous-unwind-tables -m32 -D_REENTRANT -fPIC --exe -o
test.exe-mBoapU.spec.o -F test.exe --subsystem console -L/usr/lib/wine
-L/usr/lib -L/usr/lib -L/usr/local/lib -L/lib --as-cmd=as --32 --ld-cmd=ld
-melf_i386 -- test-5hFdhw.o 
as --32 --32 -o test.GRCnmk.o test.QLV4hW.s
winebuild: as --32 failed with status 1
winegcc: winebuild failed
------

The error lies in $WINESRC/tools/winegcc/winegcc.c lines 1360 and following.
Winegcc assumes that the command line arguments remain quoted as shown in the
cmdline above, but instead winegcc receives the following as 4th arg
"--as-cmd=as --32" (as verified with a simple program just outputting the
args), so actually the quotes get lost and need to be manually filled in if
winegcc starts a script running winebuild. Franky, I don't know too much of the
process used here.


Attached is a chatlog between me and A. Hentschel.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list