Changes between Initial Version and Version 2 of Ticket #27659
- Timestamp:
- Dec 14, 2010, 12:34:03 AM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #27659
- Property Cc jwa@… added
- Property Owner changed from macports-tickets@… to ryandesign@…
-
Property
Summary
changed from
wine @1.2.2 winebuild picks the wrong assembler in presence of binutils
towine, wine-devel: winebuild picks the wrong assembler in presence of binutils
- Property Port wine-devel added
-
Ticket #27659 – Description
initial v2 18 18 The build is parallel, so several other dll's try to build at the same time, all failing with errors from gas about the -r option. As this error comes from gas, which I believe is provided by binutils (gas from binutils comes from macports, whereas the Apple version from XCode is called as), I've checked that I'm running the current version (2.20.1--scratch that, it appears there's been a recent upgrade to 2.21 that I need to pick up). I notice that the compiler switches from the XCode gcc-4.2 to winegcc, so I'm assuming that it's winegcc (by way of winebuild's get_as_command() from utils.c) that's subsequently calling gas with options it doesn't recognise. I'm not saying that I've got much of a handle on the mechanics, just that they are complex and this is as close as I've got to understanding them thus far. I dug a little further, and it looks to me that the problem is that gas is being called as follows: 19 19 20 {{{ 20 21 /opt/local/bin/gas -arch i386 -o activeds.ymaQ1t.o activeds.YHUnAl.s 22 }}} 21 23 22 24 In fact it should be called via: 23 25 26 {{{ 24 27 /opt/local/bin/gas -march i386 -o activeds.ymaQ1t.o activeds.YHUnAl.s 28 }}} 25 29 26 30 The "-r" option is actually gas breaking out -arch as a series of options. I only gave winebuild/utils.c a quick read, but it left me with the impression that it looks for gas before as. where the latter accepts -arch, whereas the former requires -march. If it's going to insist on argument parsing that only the former accepts, perhaps it ought to be patched to find it alone in the first place or at least to prefer it?