This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: linux cross compiler doesn't work on darwin


Mike Stump wrote:

With the below magic incantation darwin can host a linux targeted compiler. Without the patch, nothing links due to unresolved externals (for the config_gtfiles, darwin.c in my case):

ld: Undefined symbols:
_gt_ggc_r_gt_darwin_h
make: *** [cc1plus] Error 1

Tested on powerpc-darwin6.0 and on a powerpc-darwin6.0 X i586-pc-linux-gnu by comparing the generated Makefile, and ensuring they were right, and by ensuring the cc1plus built. I contemplated checking this in as obvious, but decided against it.

2002-07-26 Mike Stump <mrs@apple.com>

* config.gcc (config_gtfiles): Initialize.

Sorry, I had a different solution to the problem a couple days ago, but have
been distracted by our little sibcall hell... :-)

The problem is that config_gtfiles is accumulating files irrespective of
host/target, and darwin.c should only be added if it's a target.  So this
patch makes it a target-only thing (no host files with trees to track so
far).  If everybody agrees that this is the way to go, I'll put it in.

Stan

Index: config.gcc
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config.gcc,v
retrieving revision 1.226
diff -p -r1.226 config.gcc
*** config.gcc  25 Jul 2002 02:51:30 -0000      1.226
--- config.gcc  27 Jul 2002 00:00:14 -0000
*************** powerpc-*-darwin*)
*** 1989,1995 ****
       tm_p_file="${tm_p_file} darwin-protos.h"
       tmake_file=rs6000/t-darwin
       extra_objs="darwin.o"
!       config_gtfiles="${config_gtfiles} \$(srcdir)/config/darwin.c"
       c_target_objs="darwin-c.o"
       cxx_target_objs="darwin-c.o"
       # Darwin linker does collect2 functionality
--- 2001,2007 ----
       tm_p_file="${tm_p_file} darwin-protos.h"
       tmake_file=rs6000/t-darwin
       extra_objs="darwin.o"
!       target_gtfiles="\$(srcdir)/config/darwin.c"
       c_target_objs="darwin-c.o"
       cxx_target_objs="darwin-c.o"
       # Darwin linker does collect2 functionality
Index: configure.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/configure.in,v
retrieving revision 1.610
diff -p -r1.610 configure.in
*** configure.in        14 Jul 2002 01:59:13 -0000      1.610
--- configure.in        27 Jul 2002 00:00:14 -0000
*************** objext='.o'
*** 731,737 ****
 AC_SUBST(manext)
 AC_SUBST(objext)

! config_gtfiles=
 build_xm_file=
 build_xm_defines=
 build_install_headers_dir=install-headers-tar
--- 731,737 ----
 AC_SUBST(manext)
 AC_SUBST(objext)

! target_gtfiles=
 build_xm_file=
 build_xm_defines=
 build_install_headers_dir=install-headers-tar
*************** all_outputs='Makefile intl/Makefile fixi
*** 2407,2413 ****
 # List of language makefile fragments.
 all_lang_makefiles=
 # Files for gengtype
! all_gtfiles="$config_gtfiles"
 # Files for gengtype with language
 all_gtfiles_files_langs=
 all_gtfiles_files_files=
--- 2407,2413 ----
 # List of language makefile fragments.
 all_lang_makefiles=
 # Files for gengtype
! all_gtfiles="$target_gtfiles"
 # Files for gengtype with language
 all_gtfiles_files_langs=
 all_gtfiles_files_files=



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]