diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c index 65fa75bb8c6..d73665be1da 100644 --- a/gcc/ada/adaint.c +++ b/gcc/ada/adaint.c @@ -195,6 +195,13 @@ struct vstring #define DIR_SEPARATOR '/' #endif +/* Check for cross-compilation */ +#ifdef CROSS_COMPILE +int __gnat_is_cross_compiler = 1; +#else +int __gnat_is_cross_compiler = 0; +#endif + char __gnat_dir_separator = DIR_SEPARATOR; char __gnat_path_separator = PATH_SEPARATOR; @@ -2535,8 +2542,10 @@ _flush_cache() #endif #if defined (CROSS_COMPILE) \ - || (! (defined (sparc) && defined (sun) && defined (__SVR4)) \ + || (! ((defined (sparc) || defined (i386)) && defined (sun) \ + && defined (__SVR4)) \ && ! (defined (linux) && (defined (i386) || defined (__x86_64__))) \ + && ! (defined (linux) && defined (__ia64__)) \ && ! defined (__FreeBSD__) \ && ! defined (__hpux__) \ && ! defined (__APPLE__) \ @@ -2545,9 +2554,9 @@ _flush_cache() && ! defined (__MINGW32__) \ && ! (defined (__mips) && defined (__sgi))) -/* Dummy function to satisfy g-trasym.o. Currently Solaris sparc, HP/UX, - GNU/Linux x86{_64}, Tru64 & Windows provide a non-dummy version of this - procedure in libaddr2line.a. */ +/* Dummy function to satisfy g-trasym.o. See the preprocessor conditional + just above for a list of native platforms that provide a non-dummy + version of this procedure in libaddr2line.a. */ void convert_addresses (void *addrs ATTRIBUTE_UNUSED, @@ -2629,27 +2638,6 @@ __gnat_copy_attribs (char *from, char *to, int mode) #endif } -/* This function is installed in libgcc.a. */ -extern void __gnat_install_locks (void (*) (void), void (*) (void)); - -/* This function offers a hook for libgnarl to set the - locking subprograms for libgcc_eh. - This is only needed on OpenVMS, since other platforms use standard - --enable-threads=posix option, or similar. */ - -void -__gnatlib_install_locks (void (*lock) (void) ATTRIBUTE_UNUSED, - void (*unlock) (void) ATTRIBUTE_UNUSED) -{ -#if defined (IN_RTS) && defined (VMS) - __gnat_install_locks (lock, unlock); - /* There is a bootstrap path issue if adaint is build with this - symbol unresolved for the stage1 compiler. Since the compiler - does not use tasking, we simply make __gnatlib_install_locks - a no-op in this case. */ -#endif -} - int __gnat_lseek (int fd, long offset, int whence) { diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h index af83407e011..70ee1d0a594 100644 --- a/gcc/ada/adaint.h +++ b/gcc/ada/adaint.h @@ -6,7 +6,7 @@ * * * C Header File * * * - * Copyright (C) 1992-2005 Free Software Foundation, Inc. * + * Copyright (C) 1992-2005, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -164,10 +164,5 @@ extern void __gnat_plist_init (void); /* This function returns the version of GCC being used. Here it's GCC 3. */ extern int get_gcc_version (void); -/* This function offers a hook for libgnarl to set the - locking subprograms for libgcc_eh. */ -extern void __gnatlib_install_locks (void (*) (void), - void (*) (void)); - extern int __gnat_binder_supports_auto_init (void); extern int __gnat_sals_init_using_constructors (void); diff --git a/gcc/ada/s-tasini.adb b/gcc/ada/s-tasini.adb index 3aff42725cc..63b47e7b9e7 100644 --- a/gcc/ada/s-tasini.adb +++ b/gcc/ada/s-tasini.adb @@ -127,13 +127,6 @@ package body System.Tasking.Initialization is -- Tasking Initialization -- ---------------------------- - procedure Gnat_Install_Locks (Lock, Unlock : SSL.No_Param_Proc); - pragma Import (C, Gnat_Install_Locks, "__gnatlib_install_locks"); - -- Used by Init_RTS to install procedure Lock and Unlock for the - -- thread locking. This has no effect on GCC 2. For GCC 3, - -- it has an effect only if gcc is configured with - -- --enable_threads=gnat. - procedure Init_RTS; -- This procedure completes the initialization of the GNARL. The first -- part of the initialization is done in the body of System.Tasking. @@ -392,10 +385,6 @@ package body System.Tasking.Initialization is SSL.Tasking.Init_Tasking_Soft_Links; - -- Install tasking locks in the GCC runtime - - Gnat_Install_Locks (Task_Lock'Access, Task_Unlock'Access); - -- Abort is deferred in a new ATCB, so we need to undefer abort -- at this stage to make the environment task abortable.