diff options
author | Geoffrey Keating <geoffk@apple.com> | 2004-10-30 02:48:49 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2004-10-30 02:48:49 +0000 |
commit | 965a7e9092ffbec64865a95b016f731782d4b965 (patch) | |
tree | 6ee8ec5a78d0a562957eb1e05126f0ed0dbebf70 /gcc/config | |
parent | d2607dde2173bca67f29425a1a9a152167896a87 (diff) | |
download | gcc-965a7e9092ffbec64865a95b016f731782d4b965.zip gcc-965a7e9092ffbec64865a95b016f731782d4b965.tar.gz gcc-965a7e9092ffbec64865a95b016f731782d4b965.tar.bz2 |
darwin.h (ASM_SPEC): Simplify.
* config/i386/darwin.h (ASM_SPEC): Simplify.
(SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
* config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
(SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
* config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
(LINK_SPEC): Do pass -arch here. Handle -force_cpusubtype_ALL
in all cases. Pass the right -arch or -arch_only based on -mcpu.
(ASM_SPEC): Handle -force_cpusubtype_ALL.
* doc/invoke.texi (Darwin Options): Improve documentation for
Darwin linker (and libtool) switches.
From-SVN: r89877
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/darwin.h | 11 | ||||
-rw-r--r-- | gcc/config/i386/darwin.h | 13 | ||||
-rw-r--r-- | gcc/config/rs6000/darwin.h | 22 |
3 files changed, 32 insertions, 14 deletions
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index 098caa2..83aa2dd 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -219,8 +219,6 @@ extern const char *darwin_fix_and_continue_switch; #define LINK_COMMAND_SPEC "\ %{!fdump=*:%{!fsyntax-only:%{!precomp:%{!c:%{!M:%{!MM:%{!E:%{!S:\ %{!Zdynamiclib:%(linker)}%{Zdynamiclib:/usr/bin/libtool} \ - %{!Zdynamiclib:-arch %(darwin_arch)} \ - %{Zdynamiclib:-arch_only %(darwin_arch)} \ %l %X %{d} %{s} %{t} %{Z} \ %{!Zdynamiclib:%{A} %{e*} %{m} %{N} %{n} %{r} %{u*} %{x} %{z}} \ %{@:-o %f%u.out}%{!@:%{o*}%{!o:-o a.out}} \ @@ -240,13 +238,14 @@ extern const char *darwin_fix_and_continue_switch; "%{static}%{!static:-dynamic} \ %{fgnu-runtime:%:replace-outfile(-lobjc -lobjc-gnu)}\ %{!Zdynamiclib: \ + %{Zforce_cpusubtype_ALL:-arch %(darwin_arch) -force_cpusubtype_ALL} \ + %{!Zforce_cpusubtype_ALL:-arch %(darwin_subarch)} \ %{Zbundle:-bundle} \ %{Zbundle_loader*:-bundle_loader %*} \ %{client_name*} \ %{compatibility_version*:%e-compatibility_version only allowed with -dynamiclib\ } \ %{current_version*:%e-current_version only allowed with -dynamiclib} \ - %{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL} \ %{Zforce_flat_namespace:-force_flat_namespace} \ %{Zinstall_name*:%e-install_name only allowed with -dynamiclib} \ %{keep_private_externs} \ @@ -258,7 +257,8 @@ extern const char *darwin_fix_and_continue_switch; %{client_name*:%e-client_name not allowed with -dynamiclib} \ %{compatibility_version*} \ %{current_version*} \ - %{Zforce_cpusubtype_ALL:%e-force_cpusubtype_ALL not allowed with -dynamiclib} \ + %{Zforce_cpusubtype_ALL:-arch_only %(darwin_arch)} \ + %{!Zforce_cpusubtype_ALL: -arch_only %(darwin_subarch)} \ %{Zforce_flat_namespace:%e-force_flat_namespace not allowed with -dynamiclib} \ %{Zinstall_name*:-install_name %*} \ %{keep_private_externs:%e-keep_private_externs not allowed with -dynamiclib} \ @@ -332,7 +332,8 @@ extern const char *darwin_fix_and_continue_switch; /* #define ENDFILE_SPEC "" */ /* Default Darwin ASM_SPEC, very simple. */ -#define ASM_SPEC "-arch %(darwin_arch)" +#define ASM_SPEC "-arch %(darwin_arch) \ + %{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL}" /* We use Dbx symbol format. */ diff --git a/gcc/config/i386/darwin.h b/gcc/config/i386/darwin.h index c7b583d..d36b511 100644 --- a/gcc/config/i386/darwin.h +++ b/gcc/config/i386/darwin.h @@ -45,16 +45,13 @@ Boston, MA 02111-1307, USA. */ %{g: %{!gfull: -feliminate-unused-debug-symbols %<gfull }}" #undef ASM_SPEC -#define ASM_SPEC "-arch i686 \ - -force_cpusubtype_ALL \ - %{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL} \ - %{!Zforce_cpusubtype_ALL:%{mmmx:-force_cpusubtype_ALL}\ - %{msse:-force_cpusubtype_ALL}\ - %{msse2:-force_cpusubtype_ALL}}" +#define ASM_SPEC "-arch i686 -force_cpusubtype_ALL" #undef SUBTARGET_EXTRA_SPECS -#define SUBTARGET_EXTRA_SPECS \ - { "darwin_arch", "i686" }, +#define SUBTARGET_EXTRA_SPECS \ + { "darwin_arch", "i686" }, \ + { "darwin_subarch", "%{march=pentium3:pentIIm3;:i686}" }, + /* Use the following macro for any Darwin/x86-specific command-line option translation. */ diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h index ea4ef1a..50c7bd3 100644 --- a/gcc/config/rs6000/darwin.h +++ b/gcc/config/rs6000/darwin.h @@ -132,9 +132,29 @@ do { \ %{static: %{Zdynamic: %e conflicting code gen style switches are used}}\ %{!static:%{!mdynamic-no-pic:-fPIC}}" +#define DARWIN_SUBARCH_SPEC " \ + %{m64: ppc64} \ + %{!m64: \ + %{mcpu=601:ppc601; \ + mcpu=603:ppc603; \ + mcpu=603e:ppc603; \ + mcpu=604:ppc604; \ + mcpu=604e:ppc604e; \ + mcpu=740:ppc750; \ + mcpu=750:ppc750; \ + mcpu=G3:ppc750; \ + mcpu=7400:ppc7400; \ + mcpu=G4:ppc7400; \ + mcpu=7450:ppc7450; \ + mcpu=970:ppc970; \ + mcpu=power4:ppc970; \ + mcpu=G5:ppc970; \ + :ppc}}" + #undef SUBTARGET_EXTRA_SPECS #define SUBTARGET_EXTRA_SPECS \ - { "darwin_arch", "%{m64:ppc64} %{!m64:ppc}" }, + { "darwin_arch", "%{m64:ppc64;:ppc}" }, \ + { "darwin_subarch", DARWIN_SUBARCH_SPEC }, /* Output a .machine directive. */ #undef TARGET_ASM_FILE_START |