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


---
osname= darwin
osvers= 7.0
arch=   darwin-thread-multi-2level
cc=     cc 
---
Flags:
    category=core
    severity=high
    ack=no
---
Parrot has been broken on OS X for over a month now. The problem is that
the libnci test requires the libnci dynamic library to be built, and the
top level Makefile only has rules to generate libnci.so and libnci.dll.
On OS X this library is named libnci.dylib, so the build fails because
there is no rule to make this file.

The attached patch solves this. I can't test it on Win32.

Nicholas Clark
---
Summary of my parrot 0.1.0 configuration:
  configdate='Thu Jun 10 09:31:26 2004'
  Platform:
    osname=darwin, archname=darwin-2level
    jitcapable=1, jitarchname=ppc-darwin,
    jitosname=DARWIN, jitcpuarch=ppc
    execcapable=1
    perl=/Users/nick/Reference/5.8.4/bin/perl5.8.4-32
  Compiler:
    cc='ccache gcc', ccflags='-pipe -fno-common -no-cpp-precomp  -pipe -fno-common 
-Wno-long-double ',
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags=' -flat_namespace ',
    cc_ldflags='',
    libs='-lm'
  Dynamic Linking:
    so='.dylib', ld_shared=' -bundle -undefined dynamic_lookup',
    ld_shared_flags=''
  Types:
    iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
    ptrsize=4, ptr_alignment=4 byteorder=4321, 
    nv=double, numvalsize=8, doublesize=8

---
Environment:
    DYLD_LIBRARY_PATH    HOME    LANG    LANGUAGE    LD_LIBRARY_PATH    LOGDIR    PATH 
   PERL5LIB    SHELL
diff -pru parrot-clean/config/gen/makefiles/root.in 
parrot12/config/gen/makefiles/root.in
--- parrot-clean/config/gen/makefiles/root.in   Tue Jun  8 15:35:21 2004
+++ parrot12/config/gen/makefiles/root.in       Thu Jun 10 09:11:14 2004
@@ -1167,12 +1167,8 @@ exec_so : $(SRC)/exec_start$(O) blib/lib
 ###### OS depend targets ##########
 # libnci.so used by t/pmc/nci.t
 
-$(DYNEXT_DIR)/libnci.so: $(SRC)/nci_test.c
-       $(LD) $(LD_SHARED) $(LDFLAGS) \
-           $(LD_OUT)$@ $(SRC)/nci_test.c
-
-$(DYNEXT_DIR)/libnci.dll: $(SRC)/nci_test.c
-       $(LD) $(LD_SHARED) -def:libnci.def $(LDFLAGS) \
+$(LIBNCI_SO): $(SRC)/nci_test.c
+       $(LD) $(LD_SHARED) ${ncilib_link_extra} $(LDFLAGS) \
            $(LD_OUT)$@ $(SRC)/nci_test.c
 
 # vim ctags
diff -pru parrot-clean/config/init/data.pl parrot12/config/init/data.pl
--- parrot-clean/config/init/data.pl    Mon Apr 26 08:28:05 2004
+++ parrot12/config/init/data.pl        Thu Jun 10 09:30:59 2004
@@ -121,6 +121,8 @@ sub runstep {
     icu_make      => '# Building of ICU disabled',
     buildicu      => 0,
 
+    ncilib_link_extra => '',              # Extra flags needed for libnci.so
+
   );
   # add profiling if needed
   # FIXME gcc syntax
diff -pru parrot-clean/config/init/hints/mswin32.pl 
parrot12/config/init/hints/mswin32.pl
--- parrot-clean/config/init/hints/mswin32.pl   Mon May  3 09:21:38 2004
+++ parrot12/config/init/hints/mswin32.pl       Thu Jun 10 09:07:52 2004
@@ -18,7 +18,8 @@
                rm_f  => '$(PERL) -MExtUtils::Command -e rm_f',
                rm_rf => '$(PERL) -MExtUtils::Command -e rm_rf',
                 PQ    => '"',
-                make_c=> '$(PERL) -e "chdir shift @ARGV; system \'$(MAKE)\', @ARGV; 
exit $$? >> 8;"'
+                make_c=> '$(PERL) -e "chdir shift @ARGV; system \'$(MAKE)\', @ARGV; 
exit $$? >> 8;"',
+               ncilib_link_extra => '-def:libnci.def',
        );
 
        if( $is_msvc ) {

Reply via email to