What is the OSX toolchain solution for inline asm with fat binaries?

At some point we have to assume that people who are setting CFLAGS know
what they are doing.  We can't look for or protect against every silly
thing they might do.  Perhaps if --jitcapable is set and we're on darwin
the thing to do is print a warning about fat binaries and --jitcapable
being mutually exclusive things.

-J

--
On Mon, Jan 14, 2008 at 08:18:02AM -0800, Simon Cozens wrote:
> # New Ticket Created by  Simon Cozens 
> # Please include the string:  [perl #49762]
> # in the subject line of all future correspondence about this issue. 
> # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=49762 >
> 
> 
> osname= darwin
> osvers= 9.0
> arch=   darwin-thread-multi-2level
> cc=     cc
> ---
> Flags:
>     category=core
>     severity=medium
>     ack=no
> ---
> Configuring with --jitcapable will fail on OS X with the following
> error:
> 
> {standard input}:94:Invalid mnemonic 'ret'
> 
> I am on an Intel Mac, and 'ret' is a valid mnemonic for Intel assembler.
> The problem is that my CFLAGS are set by default to 
> 
>     cc -I./include -arch i386 -arch ppc ...
> 
> And 'ret' is not a valid mnemonic for PPC assembler. Good luck writing
> assembly code which compiles under both i386 and PPC architectures. If
> you want the JIT core, you can't have a fat binary Parrot; if
> --jitcapable is set, the CFLAGS need to be adjusted to only contain one
> architecture.
> 
> ---
> Summary of my parrot 0.5.1 (r24853) configuration:
>   configdate='Mon Jan 14 14:37:05 2008 GMT'
>   Platform:
>     osname=darwin, archname=darwin-thread-multi-2level
>     jitcapable=1, jitarchname=i386-darwin,
>     jitosname=DARWIN, jitcpuarch=i386
>     execcapable=1
>     perl=perl
>   Compiler:
>     cc='cc', ccflags='-arch i386 -arch ppc -g -pipe -fno-common 
> -no-cpp-precomp  -Wdeclaration-after-statement -I/usr/local/include -pipe 
> -fno-common -Wno-long-double  -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED 
>  -DHASATTRIBUTE_FORMAT  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  
> -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  
> -DHASATTRIBUTE_WARN_UNUSED_RESULT  -falign-functions=16 -W -Wall 
> -Waggregate-return -Wbad-function-cast -Wcast-align -Wcast-qual 
> -Wchar-subscripts -Wcomment -Wdeclaration-after-statement 
> -Wdisabled-optimization -Wextra -Wformat-nonliteral -Wformat-security 
> -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int 
> -Wimport -Winit-self -Winline -Winvalid-pch -Wmain -Wmissing-braces 
> -Wmissing-declarations -Wmissing-field-initializers -Wmissing-include-dirs 
> -Wmissing-prototypes -Wnested-externs -Wno-endif-labels -Wno-shadow 
> -Wno-unused -Wnonnull -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type 
> -Wsequence-point -Ws
>  ign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default 
> -Wtrigraphs -Wundef -Wunknown-pragmas -Wvariadic-macros -Wwrite-strings',
>   Linker and Libraries:
>     ld='c++', ldflags='-arch i386 -arch ppc -L/usr/local/lib 
> -L/Users/simon/svn/parrot/blib/lib -flat_namespace  -L/sw/lib -L/sw/lib',
>     cc_ldflags='',
>     libs='-lm -lutil'
>   Dynamic Linking:
>     share_ext='.dylib', ld_share_flags='-dynamiclib -undefined suppress',
>     load_ext='.bundle', ld_load_flags='-bundle -undefined suppress'
>   Types:
>     iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
>     ptrsize=4, ptr_alignment=1 byteorder=1234, 
>     nv=double, numvalsize=8, doublesize=8
> 
> ---
> Environment:
>     DYLD_LIBRARY_PATH  (unset)
>     HOME =/Users/simon
>     LANG =C
>     LANGUAGE  (unset)
>     LD_LIBRARY_PATH  (unset)
>     LOGDIR  (unset)
>     PATH 
> =/sw/bin:/sw/sbin/:/Users/simon/bin:/sw/bin:/sw/sbin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/usr/local/teTeX/bin/i386-apple-darwin-current:/usr/X11/bin:/usr/local/teTeX/bin/i386-apple-darwin-current
>     SHELL =/bin/zsh
> 

Reply via email to