# New Ticket Created by  James Keenan 
# Please include the string:  [perl #52214]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=52214 >


This is one of a series of tickets reporting issues encountered at a
Parrot/Rakudo buildfest held at Toronto Perlmongers on March 27, 2008.

Attempting to build Parrot on Darwin (OS X 10.5 on PPC), the  
participant experienced failure at core_ops.c.  Diagnosis focuses on  
the fact that Apple has both PPC- and Intel-related code in certain  
locations.  See attachment.

Environment:
============
 OS X 10.5.2 (Darwin 9.2.0)
 ICU4C 3.8.1
 GNU readline 5.2
 Perl 5.8.8 (Apple build)
 gcc 4.0.1 (Apple build)
 Xcode Developer Tools 3.0

Build Issues:
=============
Lipo
----
Build using Apple-built Perl 5.8 falls over when building core_ops.c:

cc -I./include -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 -fvisibility=hidden -W -Wall -Waggregate-return
-Wbad-function-cast -Wcast-align -Wcast-qual -Wchar-subscripts
-Wcomment -Wdeclaration-after-statement -Wdisabled-optimization
-Wendif-labels -Wextra -Wformat -Wformat-extra-args
-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 -Wno-missing-format-attribute
-Wmissing-include-dirs
-Wmissing-prototypes -Wnested-externs -Wnonnull -Wpacked -Wparentheses
-Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow
-Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch
-Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused
-Wvariadic-macros -Wwrite-strings -g -Wno-shadow -DHAS_JIT -DPPC
-DHAVE_COMPUTED_GOTO -I. -o xx.o -c xx.csrc/ops/core_ops.c
{standard input}:83417:no such instruction: `trap'
lipo: can't open input file:
/var/folders/dg/dguRNZcmEB0q3szdR27wXU+++TI/-Tmp-//ccTcobum.out (No
such file or directory)
make: *** [src/ops/core_ops.o] Error 1 $

This error is related to the attempt to build i386 objects on a PPC
platform.  It can be worked around by removing all instances of '-arch
i386 -arch ppc' from all the generated Makefiles and configuration
scripts after Configure.pl is done.  I suspect that '-arch i386 -arch
ppc' is being pulled in via Apple's build options embedded in perl 5
as I didn't see that string in the parrot tree.

$ perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
 Platform:    osname=darwin, osvers=9.0,
archname=darwin-thread-multi-2level
    uname='darwin omen.apple.com 9.0 darwin kernel version 9.0.0b5:
mon sep 10 17:17:11 pdt 2007; root:xnu-1166.6~1release_ppc po
wer macintosh '
    config_args='-ds -e -Dprefix=/usr -Dccflags=-g  -pipe
-Dldflags=-Dman3ext=3pm -Duseithreads -Duseshrplib'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=define use64bitall=define uselongdouble=undef
usemymalloc=n, bincompat5005=undef  Compiler:
    cc='cc', ccflags ='-arch i386 -arch ppc -g -pipe -fno-common
-DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing
-Wdeclaration-after-statement -I/usr/local/include',
optimize='-O3',
    cppflags='-no-cpp-precomp -g -pipe -fno-common -DPERL_DARWIN
-no-cpp-precomp -fno-strict-aliasing -Wdeclaration-after-stateme
nt -I/usr/local/include'
    ccversion='', gccversion='4.0.1 (Apple Inc. build 5465)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc -mmacosx-version-min=10.5', ldflags ='-arch i386 -arch ppc
-L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-arch i386 -arch ppc -bundle -undefined
dynamic_lookup -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES
                        USE_PERLIO USE_REENTRANT_API
  Locally applied patches:
        fix for regcomp CVE-2007-5116 security vulnerability
  Built under darwin
  Compiled at Dec  7 2007 09:37:29
  @INC:
    /System/Library/Perl/5.8.8/darwin-thread-multi-2level
    /System/Library/Perl/5.8.8
    /Library/Perl/5.8.8/darwin-thread-multi-2level
    /Library/Perl/5.8.8
    /Library/Perl
    /Network/Library/Perl/5.8.8/darwin-thread-multi-2level
    /Network/Library/Perl/5.8.8
    /Network/Library/Perl
    /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level
    /System/Library/Perl/Extras/5.8.8
    /Library/Perl/5.8.6
    /Library/Perl/5.8.1
    .
$

Reply via email to