mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 10:54:07 +08:00
Remove obsolete Tru64 UNIX V5.1B support
libstdc++-v3: * configure.host: Remove osf* handling. * config/os/osf: Remove. * doc/xml/manual/using.xml: Remove OSF reference. * testsuite/18_support/pthread_guard.cc: Remove alpha*-*-osf* handling. * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Likewise. * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise. * testsuite/21_strings/basic_string/pthread18185.cc: Likewise. * testsuite/21_strings/basic_string/pthread4.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise. * testsuite/23_containers/list/pthread1.cc: Likewise. * testsuite/23_containers/list/pthread5.cc: Likewise. * testsuite/23_containers/map/pthread6.cc: Likewise. * testsuite/23_containers/vector/debug/multithreaded_swap.cc: Likewise. * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise. * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise. * testsuite/30_threads/async/42819.cc: Likewise. * libstdc++-v3/testsuite/30_threads/async/49668.cc: Likewise. * libstdc++-v3/testsuite/30_threads/async/any.cc: Likewise. * libstdc++-v3/testsuite/30_threads/async/async.cc: Likewise. * libstdc++-v3/testsuite/30_threads/async/launch.cc: Likewise. * libstdc++-v3/testsuite/30_threads/async/sync.cc: Likewise. * libstdc++-v3/testsuite/30_threads/call_once/39909.cc: Likewise. * libstdc++-v3/testsuite/30_threads/call_once/49668.cc: Likewise. * libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc: Likewise. * libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc: Likewise. * libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/future/cons/move.cc: Likewise. * libstdc++-v3/testsuite/30_threads/future/members/45133.cc: Likewise. * libstdc++-v3/testsuite/30_threads/future/members/get.cc: Likewise. * libstdc++-v3/testsuite/30_threads/future/members/get2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/future/members/share.cc: Likewise. * libstdc++-v3/testsuite/30_threads/future/members/valid.cc: Likewise. * libstdc++-v3/testsuite/30_threads/future/members/wait.cc: Likewise. * libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc: Likewise. * libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc: Likewise. * libstdc++-v3/testsuite/30_threads/lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/lock/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/lock/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/lock/4.cc: Likewise. * libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise. * libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise. * libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc: Likewise. * libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/cons/move.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/promise/members/swap.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc: Likewise. * libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc: Likewise. * libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc: Likewise. * libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc: Likewise. * libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc: Likewise. * libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc: Likewise. * libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc: Likewise. * libstdc++-v3/testsuite/30_threads/this_thread/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/this_thread/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/this_thread/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/this_thread/4.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/4.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/5.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/6.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/7.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/8.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/9.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/members/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/members/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/members/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/members/4.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/members/5.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc: Likewise. * libstdc++-v3/testsuite/30_threads/thread/swap/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/try_lock/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/try_lock/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/try_lock/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/try_lock/4.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise. * libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise. * libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc: Likewise. * libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc: Likewise. * libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc: Likewise. libobjc: * configure.ac (enable_objc_gc): Remove alpha*-dec-osf* handling. * configure: Regenerate. * thr.c (_XOPEN_SOURCE): Define unconditionally. libjava: * configure.ac (alpha*-dec-osf*): Remove. * configure: Regenerate. * configure.host (alpha*-dec-osf*): Remove. * gnu/java/net/natPlainDatagramSocketImplPosix.cc (setOption): Use IPV6_MULTICAST_IF unconditionally. * gnu/java/net/natPlainDatagramSocketImplWin32.cc (setOption): Likewise. * gnu/java/net/natPlainSocketImplPosix.cc (gnu::java::net::PlainSocketImpl::accept): Use ::accept instead of _Jv_accept. * include/posix-signal.h [__alpha__ && __osf__]: Remove. * include/posix.h (_POSIX_PII_SOCKET): Don't define. (_Jv_accept): Remove. * java/io/File.java (File._access): Rename to access. Change callers. (File._stat): Likewise. * java/io/File.h: Regenerate. * classpath/lib/java/io/File.class: Regenerate. * java/io/natFilePosix.cc (java::io::File::_access): Rename to access. (java::io::File::_stat): Rename to stat. * java/io/natFileWin32.cc: Likewise. * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): Remove alpha*-dec-osf* handling. * testsuite/libjava.jvmti/jvmti-interp.exp (gcj_jni_compile_c_to_so): Likewise. * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o): Likewise. libitm: * configure.tgt (*-*-osf*): Remove. * configure: Regenerate. libgomp: * configure.tgt (alpha*-dec-osf*): Remove. * config/osf/sem.h: Remove. * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally. libgfortran: * configure.ac: Remove Tru64 reference. * acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Remove alpha*-dec-osf* handling. * configure: Regenerate. * intrinsics/c99_functions.c [__osf__]: Remove. libgcc: * config.host: Remove alpha*-dec-osf5.1* handling. * config/alpha/gthr-posix.c: Remove. * config/alpha/libgcc-osf5.ver: Remove. * config/alpha/osf5-unwind.h: Remove. * config/alpha/t-osf-pthread: Remove. * config/alpha/t-slibgcc-osf: Remove. * config/t-crtfm (crtfastmath.o): Remove -frandom-seed. * gthr-posix.h [!_REENTRANT && __osf__] (_REENTRANT): Don't define. [__osf__ && _PTHREAD_USE_MANGLED_NAMES_]: Remove. * mkmap-flat.awk: Remove osf_export handling. gnattools: * configure.ac: Remove alpha*-dec-osf* handling. * configure: Regenerate. gcc/testsuite: * g++.dg/abi/rtti3.C: Remove alpha*-dec-osf* handling. * g++.dg/abi/thunk4.C: Likewise. * g++.dg/cdce3.C: Don't skip on*-dec-osf5*. Adapt line numbers. * g++.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf* handling. * g++.dg/cpp0x/constexpr-rom.C: Likewise. * g++.dg/eh/spbp.C: Likewise. * g++.dg/ext/label13.C: Likewise. * g++.dg/guality/guality.exp: Likewise. * g++.dg/other/anon5.C: Likewise. * g++.dg/other/pragma-ep-1.C: Remove. * g++.dg/warn/miss-format-1.C: Remove alpha*-dec-osf* handling. * g++.dg/warn/pr31246.C: Likewise. * g++.dg/warn/weak1.C: Likewise. * g++.old-deja/g++.eh/badalloc1.C: Likewise. * g++.old-deja/g++.ext/attrib5.C: Likewise. * gcc.c-torture/compile/limits-declparen.c: Likewise. * gcc.c-torture/compile/limits-pointer.c: Likewise. * gcc.c-torture/execute/20001229-1.c: Remove __osf__ handling. * gcc.dg/attr-weakref-1.c: Remove alpha*-dec-osf* handling. * gcc.dg/c99-stdint-6.c: Remove alpha*-dec-osf5* handling. * gcc.dg/c99-tgmath-1.c: Likewise. * gcc.dg/c99-tgmath-2.c: Likewise. * gcc.dg/c99-tgmath-3.c: Likewise. * gcc.dg/c99-tgmath-4.c: Likewise. * gcc.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf* handling. * gcc.dg/debug/pr49032.c: Likewise. * gcc.dg/guality/guality.exp: Likewise. * gcc.dg/intmax_t-1.c: Likewise. * gcc.dg/pr48616.c: Likewise. * gcc.dg/pragma-ep-1.c: Remove. * gcc.dg/pragma-ep-2.c: Remove. * gcc.dg/pragma-ep-3.c: Remove. * gcc.dg/torture/pr47917.c: Remove alpha*-dec-osf5* handling. * gcc.dg/tree-ssa/pr42585.c: Remove alpha*-dec-osf* handling. * gcc.misc-tests/gcov-14.c: Likewise. * gfortran.dg/guality/guality.exp: Likewise. * lib/target-supports.exp (check_weak_available): Likewise. (add_options_for_tls): Likewise. (check_ascii_locale_available): Likewise. * obj-c++.dg/dwarf-2.mm: Likewise. * objc.dg/dwarf-1.m: Likewise. * objc.dg/dwarf-2.m: Likewise. gcc/c-family: * c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix handling. * c-pragma.c (handle_pragma_extern_prefix): Remove. (init_pragma): Don't register extern_prefix. gcc/po: * EXCLUDES (mips-tdump.c, mips-tfile.c): Remove. gcc: * config.gcc (alpha*-dec-osf5.1*): Remove. * config.host (alpha*-dec-osf*): Remove. * configure.ac (*-*-osf*): Remove. (alpha*-dec-osf*): Remove. * configure: Regenerate. * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt, config/alpha/va_list.h, config/alpha/x-osf: Remove. * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove. * config/alpha/alpha.c (struct machine_function): Update comment. (alpha_start_function): Remove Tru64 UNIX as handling for max_frame_size. * config/alpha/alpha.md ("exception_receiver"): Remove TARGET_LD_BUGGY_LDGP. ("*exception_receiver_2"): Likewise. * except.c (finish_eh_generation): Remove Tru64 reference. * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST. * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison. * target.def (handle_pragma_extern_prefix): Remove. * Makefile.in (mips-tfile.o-warn): Remove. (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o. (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove. * mips-tdump.c, mips-tfile.c: Remove. * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma extern_prefix. * doc/install.texi (Binaries): Remove Tru64 UNIX reference. (Specific, alpha*-dec-osf5.1): Note removal. * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Remove. * doc/tm.texi: Regenerate. * doc/trouble.texi (Cross-Compiler Problems): Remove. gcc/ada: * gcc-interface/Makefile.in (alpha*-dec-osf*): Remove. * a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb, s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads, s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads, system-tru64.ads: Remove. * adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]: Remove. [IS_CROSS] [!(__alpha__ && __osf__)]: Remove. * env.c [__alpha__ && __osf__]: Remove. * gsocket.h (_OSF_SOURCE): Remove. (HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove. * init.c [__alpha__ && __osf__]: Remove. * link.c [__osf__]: Remove. * s-oscons-tmplt.c [__alpha__ && __osf__]: Remove. [__osf__ && !_SS_MAXSIZE]: Remove. * sysdep.c [__osf__]: Remove. * terminals.c [__alpha__ && __osf__]: Remove. [OSF1]: Remove. * g-traceb.ads: Remove Tru64 reference. * g-trasym.ads: Likewise. * gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise. (Summary of Run-Time Configurations): Likewise. * memtrack.adb: Likewise. fixincludes: * inclhack.def (alpha___extern_prefix): Remove. (alpha___extern_prefix_standards): Remove. (alpha___extern_prefix_sys_stat): Remove. (alpha_bad_lval): Remove. (alpha_pthread): Remove. (alpha_pthread_gcc): Remove. (alpha_pthread_init): Remove. * fixincl.x: Regenerate. * tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: Remove. [ALPHA_PTHREAD_GCC_CHECK]: Remove. [ALPHA_PTHREAD_INIT_CHECK]: Remove. * tests/base/standards.h: Remove. * tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK]: Remove. * tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: Remove. [ALPHA_BAD_LVAL_CHECK]: Remove. contrib: * config-list.mk (LIST): Remove alpha-dec-osf5.1. config: * weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove alpha*-dec-osf*. toplevel: * MAINTAINERS (OS Port Maintainers): Remove osf. * configure.ac (enable_libgomp): Remove *-*-osf*. (with_stabs): Remove alpha*-*-osf*. * configure: Regenerate. From-SVN: r185240
This commit is contained in:
parent
370d8a3d6b
commit
5c30094f48
@ -1,3 +1,10 @@
|
||||
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* MAINTAINERS (OS Port Maintainers): Remove osf.
|
||||
* configure.ac (enable_libgomp): Remove *-*-osf*.
|
||||
(with_stabs): Remove alpha*-*-osf*.
|
||||
* configure: Regenerate.
|
||||
|
||||
2012-03-05 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* configure.ac: Enable gdb and readline for ia64*-*-*vms*.
|
||||
|
@ -122,7 +122,7 @@ freebsd Loren J. Rittle ljrittle@acm.org
|
||||
GNU/Hurd Thomas Schwinge thomas@schwinge.name
|
||||
hpux John David Anglin dave.anglin@nrc-cnrc.gc.ca
|
||||
hpux Steve Ellcey sje@cup.hp.com
|
||||
irix, osf, solaris Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
|
||||
irix, solaris Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
|
||||
netbsd Jason Thorpe thorpej@netbsd.org
|
||||
netbsd Krister Walfridsson krister.walfridsson@gmail.com
|
||||
sh-linux-gnu Kaz Kojima kkojima@gcc.gnu.org
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove
|
||||
alpha*-dec-osf*.
|
||||
|
||||
2012-01-22 Douglas B Rupp <rupp@gnat.com>
|
||||
|
||||
* config/mh-interix: Remove as unneeded.
|
||||
|
@ -38,7 +38,6 @@ int main ()
|
||||
}
|
||||
]])], ac_cv_have_elf_style_weakref=yes, ac_cv_have_elf_style_weakref=no, [
|
||||
case "${host}" in
|
||||
alpha*-dec-osf*) ac_cv_have_elf_style_weakref=no ;;
|
||||
*-apple-darwin[[89]]*) ac_cv_have_elf_style_weakref=no ;;
|
||||
*) ac_cv_have_elf_style_weakref=yes;;
|
||||
esac])CFLAGS="$weakref_m4_saved_CFLAGS"])
|
||||
|
4
configure
vendored
4
configure
vendored
@ -3054,7 +3054,7 @@ if test x$enable_libgomp = x ; then
|
||||
;;
|
||||
*-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
|
||||
;;
|
||||
*-*-solaris2* | *-*-irix6* | *-*-osf* | *-*-hpux11*)
|
||||
*-*-solaris2* | *-*-irix6* | *-*-hpux11*)
|
||||
;;
|
||||
*-*-darwin* | *-*-aix*)
|
||||
;;
|
||||
@ -6878,7 +6878,7 @@ if test x${with_stabs} = x ; then
|
||||
case "${target}" in
|
||||
mips*-*-irix[56]*)
|
||||
;;
|
||||
mips*-*-* | alpha*-*-osf*)
|
||||
mips*-*-*)
|
||||
with_stabs=yes;
|
||||
extra_host_args="${extra_host_args} --with-stabs"
|
||||
;;
|
||||
|
@ -483,7 +483,7 @@ if test x$enable_libgomp = x ; then
|
||||
;;
|
||||
*-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
|
||||
;;
|
||||
*-*-solaris2* | *-*-irix6* | *-*-osf* | *-*-hpux11*)
|
||||
*-*-solaris2* | *-*-irix6* | *-*-hpux11*)
|
||||
;;
|
||||
*-*-darwin* | *-*-aix*)
|
||||
;;
|
||||
@ -2336,7 +2336,7 @@ if test x${with_stabs} = x ; then
|
||||
case "${target}" in
|
||||
mips*-*-irix[[56]]*)
|
||||
;;
|
||||
mips*-*-* | alpha*-*-osf*)
|
||||
mips*-*-*)
|
||||
with_stabs=yes;
|
||||
extra_host_args="${extra_host_args} --with-stabs"
|
||||
;;
|
||||
|
@ -1,3 +1,7 @@
|
||||
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* config-list.mk (LIST): Remove alpha-dec-osf5.1.
|
||||
|
||||
2012-03-02 Diego Novillo <dnovillo@google.com>
|
||||
|
||||
* testsuite-management/validate_failures.py (class TestResult): Fix
|
||||
|
@ -12,8 +12,7 @@ TEST=all-gcc
|
||||
#
|
||||
# v850e1-elf is rejected by config.sub
|
||||
LIST = alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \
|
||||
alpha-dec-osf5.1OPT-enable-obsolete alpha64-dec-vms alpha-dec-vms \
|
||||
am33_2.0-linux \
|
||||
alpha64-dec-vms alpha-dec-vms am33_2.0-linux \
|
||||
arm-wrs-vxworks arm-freebsd6 arm-netbsdelf arm-linux \
|
||||
arm-linux-androideabi arm-uclinux_eabi arm-ecos-elf arm-eabi \
|
||||
arm-symbianelf arm-rtems arm-elf arm-wince-pe avr-rtems avr-elf \
|
||||
|
@ -1,3 +1,22 @@
|
||||
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* inclhack.def (alpha___extern_prefix): Remove.
|
||||
(alpha___extern_prefix_standards): Remove.
|
||||
(alpha___extern_prefix_sys_stat): Remove.
|
||||
(alpha_bad_lval): Remove.
|
||||
(alpha_pthread): Remove.
|
||||
(alpha_pthread_gcc): Remove.
|
||||
(alpha_pthread_init): Remove.
|
||||
* fixincl.x: Regenerate.
|
||||
* tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: Remove.
|
||||
[ALPHA_PTHREAD_GCC_CHECK]: Remove.
|
||||
[ALPHA_PTHREAD_INIT_CHECK]: Remove.
|
||||
* tests/base/standards.h: Remove.
|
||||
* tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK]:
|
||||
Remove.
|
||||
* tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: Remove.
|
||||
[ALPHA_BAD_LVAL_CHECK]: Remove.
|
||||
|
||||
2012-03-12 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* inclhack.def (vms_use_quoted_include,vms_add_missing_braces)
|
||||
|
@ -2,11 +2,11 @@
|
||||
*
|
||||
* DO NOT EDIT THIS FILE (fixincl.x)
|
||||
*
|
||||
* It has been AutoGen-ed March 12, 2012 at 10:19:44 AM by AutoGen 5.11.1
|
||||
* It has been AutoGen-ed Monday March 12, 2012 at 04:25:19 PM MET
|
||||
* From the definitions inclhack.def
|
||||
* and the template file fixincl
|
||||
*/
|
||||
/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Mar 12 10:19:44 CET 2012
|
||||
/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Mar 12 16:25:19 MET 2012
|
||||
*
|
||||
* You must regenerate it. Use the ./genfixes script.
|
||||
*
|
||||
@ -15,7 +15,7 @@
|
||||
* certain ANSI-incompatible system header files which are fixed to work
|
||||
* correctly with ANSI C and placed in a directory that GNU C will search.
|
||||
*
|
||||
* This file contains 230 fixup descriptions.
|
||||
* This file contains 223 fixup descriptions.
|
||||
*
|
||||
* See README for more information.
|
||||
*
|
||||
@ -1025,118 +1025,6 @@ static const char* apzAlpha___AssertPatch[] = {
|
||||
"__assert(const char *, const char *, int)",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha___Extern_Prefix fix
|
||||
*/
|
||||
tSCC zAlpha___Extern_PrefixName[] =
|
||||
"alpha___extern_prefix";
|
||||
|
||||
/*
|
||||
* File name selection pattern
|
||||
*/
|
||||
#define zAlpha___Extern_PrefixList (char*)NULL
|
||||
/*
|
||||
* Machine/OS name selection pattern
|
||||
*/
|
||||
tSCC* apzAlpha___Extern_PrefixMachs[] = {
|
||||
"alpha*-dec-osf*",
|
||||
(const char*)NULL };
|
||||
|
||||
/*
|
||||
* content selection pattern - do fix if pattern found
|
||||
*/
|
||||
tSCC zAlpha___Extern_PrefixSelect0[] =
|
||||
"(.*)(defined\\(__DECC\\)|def[ \t]*__DECC)[ \t]*\n\
|
||||
(#[ \t]*pragma[ \t]*extern_prefix.*)";
|
||||
|
||||
#define ALPHA___EXTERN_PREFIX_TEST_CT 1
|
||||
static tTestDesc aAlpha___Extern_PrefixTests[] = {
|
||||
{ TT_EGREP, zAlpha___Extern_PrefixSelect0, (regex_t*)NULL }, };
|
||||
|
||||
/*
|
||||
* Fix Command Arguments for Alpha___Extern_Prefix
|
||||
*/
|
||||
static const char* apzAlpha___Extern_PrefixPatch[] = {
|
||||
"format",
|
||||
"%1 (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))\n\
|
||||
%3",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha___Extern_Prefix_Standards fix
|
||||
*/
|
||||
tSCC zAlpha___Extern_Prefix_StandardsName[] =
|
||||
"alpha___extern_prefix_standards";
|
||||
|
||||
/*
|
||||
* File name selection pattern
|
||||
*/
|
||||
tSCC zAlpha___Extern_Prefix_StandardsList[] =
|
||||
"standards.h\0";
|
||||
/*
|
||||
* Machine/OS name selection pattern
|
||||
*/
|
||||
tSCC* apzAlpha___Extern_Prefix_StandardsMachs[] = {
|
||||
"alpha*-dec-osf*",
|
||||
(const char*)NULL };
|
||||
|
||||
/*
|
||||
* content selection pattern - do fix if pattern found
|
||||
*/
|
||||
tSCC zAlpha___Extern_Prefix_StandardsSelect0[] =
|
||||
".*!defined\\(_LIBC_POLLUTION_H_\\) && !defined\\(__DECC\\)";
|
||||
|
||||
#define ALPHA___EXTERN_PREFIX_STANDARDS_TEST_CT 1
|
||||
static tTestDesc aAlpha___Extern_Prefix_StandardsTests[] = {
|
||||
{ TT_EGREP, zAlpha___Extern_Prefix_StandardsSelect0, (regex_t*)NULL }, };
|
||||
|
||||
/*
|
||||
* Fix Command Arguments for Alpha___Extern_Prefix_Standards
|
||||
*/
|
||||
static const char* apzAlpha___Extern_Prefix_StandardsPatch[] = {
|
||||
"format",
|
||||
"%0 && !defined(__PRAGMA_EXTERN_PREFIX)",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha___Extern_Prefix_Sys_Stat fix
|
||||
*/
|
||||
tSCC zAlpha___Extern_Prefix_Sys_StatName[] =
|
||||
"alpha___extern_prefix_sys_stat";
|
||||
|
||||
/*
|
||||
* File name selection pattern
|
||||
*/
|
||||
tSCC zAlpha___Extern_Prefix_Sys_StatList[] =
|
||||
"sys/stat.h\0sys/mount.h\0";
|
||||
/*
|
||||
* Machine/OS name selection pattern
|
||||
*/
|
||||
tSCC* apzAlpha___Extern_Prefix_Sys_StatMachs[] = {
|
||||
"alpha*-dec-osf5*",
|
||||
(const char*)NULL };
|
||||
|
||||
/*
|
||||
* content selection pattern - do fix if pattern found
|
||||
*/
|
||||
tSCC zAlpha___Extern_Prefix_Sys_StatSelect0[] =
|
||||
"#[ \t]*if[ \t]*defined\\(__DECC\\)";
|
||||
|
||||
#define ALPHA___EXTERN_PREFIX_SYS_STAT_TEST_CT 1
|
||||
static tTestDesc aAlpha___Extern_Prefix_Sys_StatTests[] = {
|
||||
{ TT_EGREP, zAlpha___Extern_Prefix_Sys_StatSelect0, (regex_t*)NULL }, };
|
||||
|
||||
/*
|
||||
* Fix Command Arguments for Alpha___Extern_Prefix_Sys_Stat
|
||||
*/
|
||||
static const char* apzAlpha___Extern_Prefix_Sys_StatPatch[] = {
|
||||
"format",
|
||||
"%0 || defined(__PRAGMA_EXTERN_PREFIX)",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha_Assert fix
|
||||
@ -1172,41 +1060,6 @@ static const char* apzAlpha_AssertPatch[] = {
|
||||
"%1(EX)",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha_Bad_Lval fix
|
||||
*/
|
||||
tSCC zAlpha_Bad_LvalName[] =
|
||||
"alpha_bad_lval";
|
||||
|
||||
/*
|
||||
* File name selection pattern
|
||||
*/
|
||||
#define zAlpha_Bad_LvalList (char*)NULL
|
||||
/*
|
||||
* Machine/OS name selection pattern
|
||||
*/
|
||||
tSCC* apzAlpha_Bad_LvalMachs[] = {
|
||||
"alpha*-dec-osf*",
|
||||
(const char*)NULL };
|
||||
|
||||
/*
|
||||
* content selection pattern - do fix if pattern found
|
||||
*/
|
||||
tSCC zAlpha_Bad_LvalSelect0[] =
|
||||
"^[ \t]*#[ \t]*pragma[ \t]+extern_prefix";
|
||||
|
||||
#define ALPHA_BAD_LVAL_TEST_CT 1
|
||||
static tTestDesc aAlpha_Bad_LvalTests[] = {
|
||||
{ TT_EGREP, zAlpha_Bad_LvalSelect0, (regex_t*)NULL }, };
|
||||
|
||||
/*
|
||||
* Fix Command Arguments for Alpha_Bad_Lval
|
||||
*/
|
||||
static const char* apzAlpha_Bad_LvalPatch[] = { sed_cmd_z,
|
||||
"-e", "s/^[ \t]*#[ \t]*define[ \t][ \t]*\\([^(]*\\)\\(([^)]*)\\)[ \t]*\\(_.*\\)\\1\\2[ \t]*$/#define \\1 \\3\\1/",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha_Getopt fix
|
||||
@ -1312,126 +1165,6 @@ static const char* apzAlpha_ParensPatch[] = {
|
||||
"#ifndef __mips64",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha_Pthread fix
|
||||
*/
|
||||
tSCC zAlpha_PthreadName[] =
|
||||
"alpha_pthread";
|
||||
|
||||
/*
|
||||
* File name selection pattern
|
||||
*/
|
||||
tSCC zAlpha_PthreadList[] =
|
||||
"pthread.h\0";
|
||||
/*
|
||||
* Machine/OS name selection pattern
|
||||
*/
|
||||
tSCC* apzAlpha_PthreadMachs[] = {
|
||||
"alpha*-dec-osf*",
|
||||
(const char*)NULL };
|
||||
|
||||
/*
|
||||
* content selection pattern - do fix if pattern found
|
||||
*/
|
||||
tSCC zAlpha_PthreadSelect0[] =
|
||||
"((#[ \t]*if)([ \t]*defined[ \t]*\\(_PTHREAD_ENV_DECC\\)|def _PTHREAD_ENV_DECC)(.*))\n\
|
||||
(#[ \t]*define _PTHREAD_USE_PTDNAM_)";
|
||||
|
||||
#define ALPHA_PTHREAD_TEST_CT 1
|
||||
static tTestDesc aAlpha_PthreadTests[] = {
|
||||
{ TT_EGREP, zAlpha_PthreadSelect0, (regex_t*)NULL }, };
|
||||
|
||||
/*
|
||||
* Fix Command Arguments for Alpha_Pthread
|
||||
*/
|
||||
static const char* apzAlpha_PthreadPatch[] = {
|
||||
"format",
|
||||
"%2 defined (_PTHREAD_ENV_DECC)%4 || defined (__PRAGMA_EXTERN_PREFIX)\n\
|
||||
%5",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha_Pthread_Gcc fix
|
||||
*/
|
||||
tSCC zAlpha_Pthread_GccName[] =
|
||||
"alpha_pthread_gcc";
|
||||
|
||||
/*
|
||||
* File name selection pattern
|
||||
*/
|
||||
tSCC zAlpha_Pthread_GccList[] =
|
||||
"pthread.h\0";
|
||||
/*
|
||||
* Machine/OS name selection pattern
|
||||
*/
|
||||
tSCC* apzAlpha_Pthread_GccMachs[] = {
|
||||
"alpha*-dec-osf*",
|
||||
(const char*)NULL };
|
||||
|
||||
/*
|
||||
* content selection pattern - do fix if pattern found
|
||||
*/
|
||||
tSCC zAlpha_Pthread_GccSelect0[] =
|
||||
"#else\n\
|
||||
# error <pthread.h>: unrecognized compiler.";
|
||||
|
||||
#define ALPHA_PTHREAD_GCC_TEST_CT 1
|
||||
static tTestDesc aAlpha_Pthread_GccTests[] = {
|
||||
{ TT_EGREP, zAlpha_Pthread_GccSelect0, (regex_t*)NULL }, };
|
||||
|
||||
/*
|
||||
* Fix Command Arguments for Alpha_Pthread_Gcc
|
||||
*/
|
||||
static const char* apzAlpha_Pthread_GccPatch[] = {
|
||||
"format",
|
||||
"#elif defined (__GNUC__)\n\
|
||||
# define _PTHREAD_ENV_GCC\n\
|
||||
%0",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha_Pthread_Init fix
|
||||
*/
|
||||
tSCC zAlpha_Pthread_InitName[] =
|
||||
"alpha_pthread_init";
|
||||
|
||||
/*
|
||||
* File name selection pattern
|
||||
*/
|
||||
tSCC zAlpha_Pthread_InitList[] =
|
||||
"pthread.h\0";
|
||||
/*
|
||||
* Machine/OS name selection pattern
|
||||
*/
|
||||
tSCC* apzAlpha_Pthread_InitMachs[] = {
|
||||
"alpha*-dec-osf*",
|
||||
(const char*)NULL };
|
||||
|
||||
/*
|
||||
* content selection pattern - do fix if pattern found
|
||||
*/
|
||||
tSCC zAlpha_Pthread_InitSelect0[] =
|
||||
" \\* @\\(#\\).RCSfile: pthread\\.h,v \\$ .Revision: 1\\.1\\.33\\.21 \\$ \\(DEC\\) .Date: 2000/08/15 15:30:13 \\$";
|
||||
|
||||
#define ALPHA_PTHREAD_INIT_TEST_CT 1
|
||||
static tTestDesc aAlpha_Pthread_InitTests[] = {
|
||||
{ TT_EGREP, zAlpha_Pthread_InitSelect0, (regex_t*)NULL }, };
|
||||
|
||||
/*
|
||||
* Fix Command Arguments for Alpha_Pthread_Init
|
||||
*/
|
||||
static const char* apzAlpha_Pthread_InitPatch[] = { sed_cmd_z,
|
||||
"-e", "s@MVALID\\(.*\\)A}@MVALID\\1A, 0, 0, 0, 0, 0, 0 }@\n\
|
||||
s@MVALID\\(.*\\)_}@MVALID\\1_, 0, 0, 0, 0 }@\n\
|
||||
s@CVALID\\(.*\\)A}@CVALID\\1A, 0, 0, 0, 0 }@\n\
|
||||
s@CVALID\\(.*\\)_}@CVALID\\1_, 0, 0 }@\n\
|
||||
s@WVALID\\(.*\\)A}@WVALID\\1A, 0, 0, 0, 0, 0, 0, 0, 0, 0 }@\n\
|
||||
s@WVALID\\(.*\\)_}@WVALID\\1_, 0, 0, 0, 0, 0, 0, 0 }@\n",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha_Sbrk fix
|
||||
@ -9335,9 +9068,9 @@ static const char* apzX11_SprintfPatch[] = {
|
||||
*
|
||||
* List of all fixes
|
||||
*/
|
||||
#define REGEX_COUNT 272
|
||||
#define REGEX_COUNT 265
|
||||
#define MACH_LIST_SIZE_LIMIT 181
|
||||
#define FIX_COUNT 230
|
||||
#define FIX_COUNT 223
|
||||
|
||||
/*
|
||||
* Enumerate the fixes
|
||||
@ -9365,17 +9098,10 @@ typedef enum {
|
||||
AIX_SYSWAIT_2_FIXIDX,
|
||||
AIX_VOLATILE_FIXIDX,
|
||||
ALPHA___ASSERT_FIXIDX,
|
||||
ALPHA___EXTERN_PREFIX_FIXIDX,
|
||||
ALPHA___EXTERN_PREFIX_STANDARDS_FIXIDX,
|
||||
ALPHA___EXTERN_PREFIX_SYS_STAT_FIXIDX,
|
||||
ALPHA_ASSERT_FIXIDX,
|
||||
ALPHA_BAD_LVAL_FIXIDX,
|
||||
ALPHA_GETOPT_FIXIDX,
|
||||
ALPHA_IF_SEMICOLON_FIXIDX,
|
||||
ALPHA_PARENS_FIXIDX,
|
||||
ALPHA_PTHREAD_FIXIDX,
|
||||
ALPHA_PTHREAD_GCC_FIXIDX,
|
||||
ALPHA_PTHREAD_INIT_FIXIDX,
|
||||
ALPHA_SBRK_FIXIDX,
|
||||
AVOID_BOOL_DEFINE_FIXIDX,
|
||||
AVOID_BOOL_TYPE_FIXIDX,
|
||||
@ -9686,31 +9412,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
|
||||
ALPHA___ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha___AssertTests, apzAlpha___AssertPatch, 0 },
|
||||
|
||||
{ zAlpha___Extern_PrefixName, zAlpha___Extern_PrefixList,
|
||||
apzAlpha___Extern_PrefixMachs,
|
||||
ALPHA___EXTERN_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha___Extern_PrefixTests, apzAlpha___Extern_PrefixPatch, 0 },
|
||||
|
||||
{ zAlpha___Extern_Prefix_StandardsName, zAlpha___Extern_Prefix_StandardsList,
|
||||
apzAlpha___Extern_Prefix_StandardsMachs,
|
||||
ALPHA___EXTERN_PREFIX_STANDARDS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha___Extern_Prefix_StandardsTests, apzAlpha___Extern_Prefix_StandardsPatch, 0 },
|
||||
|
||||
{ zAlpha___Extern_Prefix_Sys_StatName, zAlpha___Extern_Prefix_Sys_StatList,
|
||||
apzAlpha___Extern_Prefix_Sys_StatMachs,
|
||||
ALPHA___EXTERN_PREFIX_SYS_STAT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha___Extern_Prefix_Sys_StatTests, apzAlpha___Extern_Prefix_Sys_StatPatch, 0 },
|
||||
|
||||
{ zAlpha_AssertName, zAlpha_AssertList,
|
||||
apzAlpha_AssertMachs,
|
||||
ALPHA_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha_AssertTests, apzAlpha_AssertPatch, 0 },
|
||||
|
||||
{ zAlpha_Bad_LvalName, zAlpha_Bad_LvalList,
|
||||
apzAlpha_Bad_LvalMachs,
|
||||
ALPHA_BAD_LVAL_TEST_CT, FD_MACH_ONLY,
|
||||
aAlpha_Bad_LvalTests, apzAlpha_Bad_LvalPatch, 0 },
|
||||
|
||||
{ zAlpha_GetoptName, zAlpha_GetoptList,
|
||||
apzAlpha_GetoptMachs,
|
||||
ALPHA_GETOPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
@ -9726,21 +9432,6 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
|
||||
ALPHA_PARENS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha_ParensTests, apzAlpha_ParensPatch, 0 },
|
||||
|
||||
{ zAlpha_PthreadName, zAlpha_PthreadList,
|
||||
apzAlpha_PthreadMachs,
|
||||
ALPHA_PTHREAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha_PthreadTests, apzAlpha_PthreadPatch, 0 },
|
||||
|
||||
{ zAlpha_Pthread_GccName, zAlpha_Pthread_GccList,
|
||||
apzAlpha_Pthread_GccMachs,
|
||||
ALPHA_PTHREAD_GCC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha_Pthread_GccTests, apzAlpha_Pthread_GccPatch, 0 },
|
||||
|
||||
{ zAlpha_Pthread_InitName, zAlpha_Pthread_InitList,
|
||||
apzAlpha_Pthread_InitMachs,
|
||||
ALPHA_PTHREAD_INIT_TEST_CT, FD_MACH_ONLY,
|
||||
aAlpha_Pthread_InitTests, apzAlpha_Pthread_InitPatch, 0 },
|
||||
|
||||
{ zAlpha_SbrkName, zAlpha_SbrkList,
|
||||
apzAlpha_SbrkMachs,
|
||||
ALPHA_SBRK_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
|
@ -585,63 +585,6 @@ fix = {
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX V4/5 headers.
|
||||
*/
|
||||
fix = {
|
||||
hackname = alpha___extern_prefix;
|
||||
select = "(.*)(defined\\(__DECC\\)|def[ \t]*__DECC)[ \t]*\n"
|
||||
"(#[ \t]*pragma[ \t]*extern_prefix.*)";
|
||||
|
||||
mach = "alpha*-dec-osf*";
|
||||
c_fix = format;
|
||||
c_fix_arg = "%1 (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))\n%3";
|
||||
|
||||
test_text = "#ifdef __DECC\n"
|
||||
"#pragma extern_prefix \"_P\"\n"
|
||||
"# if defined(__DECC)\n"
|
||||
"# pragma extern_prefix \"_E\"\n"
|
||||
"# if !defined(_LIBC_POLLUTION_H_) && defined(__DECC)\n"
|
||||
"# pragma extern_prefix \"\"";
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX V4/5 <standards.h>.
|
||||
*/
|
||||
fix = {
|
||||
hackname = alpha___extern_prefix_standards;
|
||||
files = standards.h;
|
||||
select = ".*!defined\\(_LIBC_POLLUTION_H_\\) && !defined\\(__DECC\\)";
|
||||
|
||||
mach = "alpha*-dec-osf*";
|
||||
c_fix = format;
|
||||
c_fix_arg = "%0 && !defined(__PRAGMA_EXTERN_PREFIX)";
|
||||
|
||||
test_text = "#if (_ISO_C_SOURCE>=19990L) "
|
||||
"&& !defined(_LIBC_POLLUTION_H_) && !defined(__DECC)";
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX V5 <sys/mount.h> and
|
||||
* <sys/stat.h>. The tests for __DECC are special in various ways, so
|
||||
* alpha__extern_prefix cannot be used.
|
||||
*/
|
||||
fix = {
|
||||
hackname = alpha___extern_prefix_sys_stat;
|
||||
files = sys/stat.h;
|
||||
files = sys/mount.h;
|
||||
select = "#[ \t]*if[ \t]*defined\\(__DECC\\)";
|
||||
|
||||
mach = "alpha*-dec-osf5*";
|
||||
c_fix = format;
|
||||
c_fix_arg = "%0 || defined(__PRAGMA_EXTERN_PREFIX)";
|
||||
|
||||
test_text = "# if defined(__DECC)";
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Fix assert macro in assert.h on Alpha OSF/1.
|
||||
* The superfluous int cast breaks C++.
|
||||
@ -657,37 +600,6 @@ fix = {
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Fix #defines under Alpha OSF/1:
|
||||
* The following files contain '#pragma extern_prefix "_FOO"' followed by
|
||||
* a '#define something(x,y,z) _FOOsomething(x,y,z)'. The intent of these
|
||||
* statements is to reduce namespace pollution. While these macros work
|
||||
* properly in most cases, they don't allow you to take a pointer to the
|
||||
* "something" being modified. To get around this limitation, change these
|
||||
* statements to be of the form '#define something _FOOsomething'.
|
||||
*
|
||||
* sed ain't egrep, lesson 2463: sed can use self-referential
|
||||
* regular expressions. In the substitute expression below,
|
||||
* "\\1" and "\\2" refer to subexpressions found earlier in the
|
||||
* same match. So, we continue to use sed. "extern_prefix" will
|
||||
* be a rare match anyway...
|
||||
*/
|
||||
fix = {
|
||||
hackname = alpha_bad_lval;
|
||||
|
||||
select = "^[ \t]*#[ \t]*pragma[ \t]+extern_prefix";
|
||||
mach = "alpha*-dec-osf*";
|
||||
|
||||
sed =
|
||||
"s/^[ \t]*#[ \t]*define[ \t][ \t]*\\([^(]*\\)\\(([^)]*)\\)[ \t]*"
|
||||
"\\(_.*\\)\\1\\2[ \t]*$/#define \\1 \\3\\1/";
|
||||
|
||||
test_text = '#pragma extern_prefix "_FOO"'"\n"
|
||||
"#define something(x,y,z) _FOOsomething(x,y,z)\n"
|
||||
"#define mumble _FOOmumble";
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Fix getopt declarations in stdio.h and stdlib.h on Alpha OSF/1 and AIX.
|
||||
*/
|
||||
@ -728,99 +640,6 @@ fix = {
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX <pthread.h>.
|
||||
*/
|
||||
fix = {
|
||||
hackname = alpha_pthread;
|
||||
files = pthread.h;
|
||||
select = "((#[ \t]*if)([ \t]*defined[ \t]*\\(_PTHREAD_ENV_DECC\\)"
|
||||
"|def _PTHREAD_ENV_DECC)(.*))\n"
|
||||
"(#[ \t]*define _PTHREAD_USE_PTDNAM_)";
|
||||
|
||||
mach = "alpha*-dec-osf*";
|
||||
c_fix = format;
|
||||
c_fix_arg = "%2 defined (_PTHREAD_ENV_DECC)%4 "
|
||||
"|| defined (__PRAGMA_EXTERN_PREFIX)\n%5";
|
||||
|
||||
test_text = "# if defined (_PTHREAD_ENV_DECC) "
|
||||
"|| defined (_PTHREAD_ENV_EPCC)\n"
|
||||
"# define _PTHREAD_USE_PTDNAM_\n"
|
||||
"# endif\n"
|
||||
"# ifdef _PTHREAD_ENV_DECC\n"
|
||||
"# define _PTHREAD_USE_PTDNAM_\n"
|
||||
"# endif";
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Recognize GCC in Tru64 UNIX V5.1B <pthread.h>.
|
||||
*/
|
||||
fix = {
|
||||
hackname = alpha_pthread_gcc;
|
||||
files = pthread.h;
|
||||
select = "#else\n# error <pthread.h>: unrecognized compiler.";
|
||||
|
||||
mach = "alpha*-dec-osf*";
|
||||
c_fix = format;
|
||||
c_fix_arg = "#elif defined (__GNUC__)\n"
|
||||
"# define _PTHREAD_ENV_GCC\n"
|
||||
"%0";
|
||||
|
||||
test_text = "# define _PTHREAD_ENV_INTELC\n"
|
||||
"#else\n"
|
||||
"# error <pthread.h>: unrecognized compiler.\n"
|
||||
"#endif";
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Compaq Tru64 v5.1 defines all of its PTHREAD_*_INITIALIZER macros
|
||||
* incorrectly, specifying less fields in the initializers than are
|
||||
* defined in the corresponding structure types. Use of these macros
|
||||
* in user code results in spurious warnings.
|
||||
*/
|
||||
fix = {
|
||||
hackname = alpha_pthread_init;
|
||||
files = pthread.h;
|
||||
select = ' \* @\(#\).RCSfile: pthread\.h,v \$'
|
||||
' .Revision: 1\.1\.33\.21 \$ \(DEC\)'
|
||||
' .Date: 2000/08/15 15:30:13 \$';
|
||||
mach = "alpha*-dec-osf*";
|
||||
sed = "s@MVALID\\(.*\\)A}@MVALID\\1A, 0, 0, 0, 0, 0, 0 }@\n"
|
||||
"s@MVALID\\(.*\\)_}@MVALID\\1_, 0, 0, 0, 0 }@\n"
|
||||
"s@CVALID\\(.*\\)A}@CVALID\\1A, 0, 0, 0, 0 }@\n"
|
||||
"s@CVALID\\(.*\\)_}@CVALID\\1_, 0, 0 }@\n"
|
||||
"s@WVALID\\(.*\\)A}@WVALID\\1A, 0, 0, 0, 0, 0, 0, 0, 0, 0 }@\n"
|
||||
"s@WVALID\\(.*\\)_}@WVALID\\1_, 0, 0, 0, 0, 0, 0, 0 }@\n";
|
||||
test_text = <<- _EOText_
|
||||
/*
|
||||
* @(#)_RCSfile: pthread.h,v $ _Revision: 1.1.33.21 $ (DEC) _Date: 2000/08/15 15:30:13 $
|
||||
*/
|
||||
#ifndef _PTHREAD_NOMETER_STATIC
|
||||
# define PTHREAD_MUTEX_INITIALIZER \
|
||||
{_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA}
|
||||
# define PTHREAD_COND_INITIALIZER \
|
||||
{_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA}
|
||||
# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) \
|
||||
{_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_}
|
||||
# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) \
|
||||
{_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_}
|
||||
#else
|
||||
# define PTHREAD_MUTEX_INITIALIZER {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA}
|
||||
# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) \
|
||||
{0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_}
|
||||
# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) \
|
||||
{0, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_}
|
||||
#endif
|
||||
|
||||
#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA}
|
||||
#define PTHREAD_RWLOCK_INITWITHNAME_NP(_n_,_a_) \
|
||||
{_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, _n_, _a_}
|
||||
_EOText_;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Fix return value of sbrk in unistd.h on Alpha OSF/1 V2.0
|
||||
* And OpenBSD.
|
||||
|
@ -29,46 +29,6 @@
|
||||
#endif /* AIX_PTHREAD_CHECK */
|
||||
|
||||
|
||||
#if defined( ALPHA_PTHREAD_CHECK )
|
||||
# if defined (_PTHREAD_ENV_DECC) || defined (_PTHREAD_ENV_EPCC) || defined (__PRAGMA_EXTERN_PREFIX)
|
||||
# define _PTHREAD_USE_PTDNAM_
|
||||
# endif
|
||||
# if defined (_PTHREAD_ENV_DECC) || defined (__PRAGMA_EXTERN_PREFIX)
|
||||
# define _PTHREAD_USE_PTDNAM_
|
||||
# endif
|
||||
#endif /* ALPHA_PTHREAD_CHECK */
|
||||
|
||||
|
||||
#if defined( ALPHA_PTHREAD_GCC_CHECK )
|
||||
# define _PTHREAD_ENV_INTELC
|
||||
#elif defined (__GNUC__)
|
||||
# define _PTHREAD_ENV_GCC
|
||||
#else
|
||||
# error <pthread.h>: unrecognized compiler.
|
||||
#endif
|
||||
#endif /* ALPHA_PTHREAD_GCC_CHECK */
|
||||
|
||||
|
||||
#if defined( ALPHA_PTHREAD_INIT_CHECK )
|
||||
/*
|
||||
* @(#)_RCSfile: pthread.h,v $ _Revision: 1.1.33.21 $ (DEC) _Date: 2000/08/15 15:30:13 $
|
||||
*/
|
||||
#ifndef _PTHREAD_NOMETER_STATIC
|
||||
# define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA, 0, 0, 0, 0, 0, 0 }
|
||||
# define PTHREAD_COND_INITIALIZER {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, 0, 0, 0, 0 }
|
||||
# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_, 0, 0, 0, 0 }
|
||||
# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_, 0, 0 }
|
||||
#else
|
||||
# define PTHREAD_MUTEX_INITIALIZER {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, 0, 0, 0, 0, 0, 0 }
|
||||
# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_, 0, 0, 0, 0 }
|
||||
# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) {0, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_, 0, 0 }
|
||||
#endif
|
||||
|
||||
#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
#define PTHREAD_RWLOCK_INITWITHNAME_NP(_n_,_a_) {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, _n_, _a_, 0, 0, 0, 0, 0, 0, 0 }
|
||||
#endif /* ALPHA_PTHREAD_INIT_CHECK */
|
||||
|
||||
|
||||
#if defined( GLIBC_MUTEX_INIT_CHECK )
|
||||
#define PTHREAD_MUTEX_INITIALIZER \
|
||||
{ { 0, 0, 0, 0, 0, 0 } }
|
||||
|
@ -1,14 +0,0 @@
|
||||
/* DO NOT EDIT THIS FILE.
|
||||
|
||||
It has been auto-edited by fixincludes from:
|
||||
|
||||
"fixinc/tests/inc/standards.h"
|
||||
|
||||
This had to be done to correct non-standard usages in the
|
||||
original, manufacturer supplied header file. */
|
||||
|
||||
|
||||
|
||||
#if defined( ALPHA___EXTERN_PREFIX_STANDARDS_CHECK )
|
||||
#if (_ISO_C_SOURCE>=19990L) && !defined(_LIBC_POLLUTION_H_) && !defined(__DECC) && !defined(__PRAGMA_EXTERN_PREFIX)
|
||||
#endif /* ALPHA___EXTERN_PREFIX_STANDARDS_CHECK */
|
@ -9,11 +9,6 @@
|
||||
|
||||
|
||||
|
||||
#if defined( ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK )
|
||||
# if defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX)
|
||||
#endif /* ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK */
|
||||
|
||||
|
||||
#if defined( GLIBC_C99_INLINE_2_CHECK )
|
||||
#ifdef __GNUC_GNU_INLINE__
|
||||
extern
|
||||
|
@ -9,23 +9,6 @@
|
||||
|
||||
|
||||
|
||||
#if defined( ALPHA___EXTERN_PREFIX_CHECK )
|
||||
#if (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))
|
||||
#pragma extern_prefix "_P"
|
||||
# if (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))
|
||||
# pragma extern_prefix "_E"
|
||||
# if !defined(_LIBC_POLLUTION_H_) && (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))
|
||||
# pragma extern_prefix ""
|
||||
#endif /* ALPHA___EXTERN_PREFIX_CHECK */
|
||||
|
||||
|
||||
#if defined( ALPHA_BAD_LVAL_CHECK )
|
||||
#pragma extern_prefix "_FOO"
|
||||
#define something _FOOsomething
|
||||
#define mumble _FOOmumble
|
||||
#endif /* ALPHA_BAD_LVAL_CHECK */
|
||||
|
||||
|
||||
#if defined( AVOID_WCHAR_T_TYPE_CHECK )
|
||||
#ifndef __cplusplus
|
||||
typedef unsigned short wchar_t ;
|
||||
|
@ -1,3 +1,41 @@
|
||||
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* config.gcc (alpha*-dec-osf5.1*): Remove.
|
||||
* config.host (alpha*-dec-osf*): Remove.
|
||||
* configure.ac (*-*-osf*): Remove.
|
||||
(alpha*-dec-osf*): Remove.
|
||||
* configure: Regenerate.
|
||||
|
||||
* config/alpha/host-osf.c, config/alpha/osf5.h,
|
||||
config/alpha/osf5.opt, config/alpha/va_list.h, config/alpha/x-osf:
|
||||
Remove.
|
||||
|
||||
* config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
|
||||
* config/alpha/alpha.c (struct machine_function): Update comment.
|
||||
(alpha_start_function): Remove Tru64 UNIX as handling for
|
||||
max_frame_size.
|
||||
* config/alpha/alpha.md ("exception_receiver"): Remove
|
||||
TARGET_LD_BUGGY_LDGP.
|
||||
("*exception_receiver_2"): Likewise.
|
||||
* except.c (finish_eh_generation): Remove Tru64 reference.
|
||||
* ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
|
||||
* system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
|
||||
* target.def (handle_pragma_extern_prefix): Remove.
|
||||
|
||||
* Makefile.in (mips-tfile.o-warn): Remove.
|
||||
(ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
|
||||
(mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
|
||||
* mips-tdump.c, mips-tfile.c: Remove.
|
||||
|
||||
* doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
|
||||
extern_prefix.
|
||||
* doc/install.texi (Binaries): Remove Tru64 UNIX reference.
|
||||
(Specific, alpha*-dec-osf5.1): Note removal.
|
||||
* doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
|
||||
Remove.
|
||||
* doc/tm.texi: Regenerate.
|
||||
* doc/trouble.texi (Cross-Compiler Problems): Remove.
|
||||
|
||||
2012-03-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* config/arm/arm.c (neon_dereference_pointer): Do not call
|
||||
|
@ -195,8 +195,6 @@ GCC_WARN_CXXFLAGS = $(LOOSE_WARN) $($(@D)-warn) $(NOCOMMON_FLAG) $($@-warn)
|
||||
# flex output may yield harmless "no previous prototype" warnings
|
||||
build/gengtype-lex.o-warn = -Wno-error
|
||||
gengtype-lex.o-warn = -Wno-error
|
||||
# mips-tfile.c contains -Wcast-qual warnings.
|
||||
mips-tfile.o-warn = -Wno-error
|
||||
expmed.o-warn = -Wno-error
|
||||
|
||||
# All warnings have to be shut off in stage1 if the compiler used then
|
||||
@ -1467,8 +1465,7 @@ ALL_HOST_FRONTEND_OBJS = $(C_OBJS) \
|
||||
|
||||
ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \
|
||||
$(OBJS-libcommon-target) @TREEBROWSER@ main.o gccspec.o cppspec.o \
|
||||
$(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) mips-tfile.o mips-tdump.o \
|
||||
$(GCOV_OBJS) $(GCOV_DUMP_OBJS)
|
||||
$(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS)
|
||||
|
||||
# This lists all host object files, whether they are included in this
|
||||
# compilation or not.
|
||||
@ -3450,22 +3447,6 @@ $(common_out_object_file): $(common_out_file) $(CONFIG_H) $(SYSTEM_H) \
|
||||
$(DIAGNOSTIC_CORE_H) $(FLAGS_H) $(OPTS_H) $(TM_H) $(TM_P_H) $(MACHMODE_H)
|
||||
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
|
||||
$< $(OUTPUT_OPTION)
|
||||
|
||||
# Build auxiliary files that support ecoff format.
|
||||
mips-tfile: mips-tfile.o $(LIBDEPS)
|
||||
$(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
|
||||
mips-tfile.o $(LIBS)
|
||||
|
||||
mips-tfile.o : mips-tfile.c $(CONFIG_H) $(SYSTEM_H) \
|
||||
version.h $(srcdir)/../include/getopt.h $(GSTAB_H) intl.h
|
||||
|
||||
mips-tdump: mips-tdump.o $(LIBDEPS)
|
||||
$(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
|
||||
mips-tdump.o $(LIBS)
|
||||
|
||||
mips-tdump.o : mips-tdump.c $(CONFIG_H) $(SYSTEM_H) \
|
||||
version.h $(srcdir)/../include/getopt.h stab.def
|
||||
|
||||
#
|
||||
# Generate header and source files from the machine description,
|
||||
# and compile them.
|
||||
|
@ -1,3 +1,31 @@
|
||||
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
|
||||
* a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
|
||||
s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
|
||||
s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
|
||||
system-tru64.ads: Remove.
|
||||
|
||||
* adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
|
||||
Remove.
|
||||
[IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
|
||||
* env.c [__alpha__ && __osf__]: Remove.
|
||||
* gsocket.h (_OSF_SOURCE): Remove.
|
||||
(HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
|
||||
* init.c [__alpha__ && __osf__]: Remove.
|
||||
* link.c [__osf__]: Remove.
|
||||
* s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
|
||||
[__osf__ && !_SS_MAXSIZE]: Remove.
|
||||
* sysdep.c [__osf__]: Remove.
|
||||
* terminals.c [__alpha__ && __osf__]: Remove.
|
||||
[OSF1]: Remove.
|
||||
|
||||
* g-traceb.ads: Remove Tru64 reference.
|
||||
* g-trasym.ads: Likewise.
|
||||
* gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
|
||||
(Summary of Run-Time Configurations): Likewise.
|
||||
* memtrack.adb: Likewise.
|
||||
|
||||
2012-03-12 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* gcc-interface/decl.c (gnat_to_gnu_param): Use flag_vms_malloc64
|
||||
|
@ -1,151 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
|
||||
-- --
|
||||
-- A D A . I N T E R R U P T S . N A M E S --
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 1991-2011, Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- GNARL 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. --
|
||||
-- --
|
||||
-- As a special exception under Section 7 of GPL version 3, you are granted --
|
||||
-- additional permissions described in the GCC Runtime Library Exception, --
|
||||
-- version 3.1, as published by the Free Software Foundation. --
|
||||
-- --
|
||||
-- You should have received a copy of the GNU General Public License and --
|
||||
-- a copy of the GCC Runtime Library Exception along with this program; --
|
||||
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
|
||||
-- <http://www.gnu.org/licenses/>. --
|
||||
-- --
|
||||
-- GNARL was developed by the GNARL team at Florida State University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies, Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- This is the DEC Unix 4.0 version of this package
|
||||
|
||||
-- The following signals are reserved by the run time:
|
||||
|
||||
-- SIGFPE, SIGILL, SIGSEGV, SIGBUS, SIGABRT, SIGTRAP, SIGINT, SIGALRM,
|
||||
-- SIGSTOP, SIGKILL
|
||||
|
||||
-- The pragma Unreserve_All_Interrupts affects the following signal(s):
|
||||
|
||||
-- SIGINT: made available for Ada handler
|
||||
|
||||
with System.OS_Interface;
|
||||
|
||||
package Ada.Interrupts.Names is
|
||||
|
||||
-- All identifiers in this unit are implementation defined
|
||||
|
||||
pragma Implementation_Defined;
|
||||
|
||||
-- Beware that the mapping of names to signals may be many-to-one. There
|
||||
-- may be aliases. Also, for all signal names that are not supported on the
|
||||
-- current system the value of the corresponding constant will be zero.
|
||||
|
||||
SIGHUP : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGHUP; -- hangup
|
||||
|
||||
SIGINT : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGINT; -- interrupt (rubout)
|
||||
|
||||
SIGQUIT : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGQUIT; -- quit (ASCD FS)
|
||||
|
||||
SIGILL : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGILL; -- illegal instruction (not reset)
|
||||
|
||||
SIGTRAP : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGTRAP; -- trace trap (not reset)
|
||||
|
||||
SIGIOT : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGIOT; -- IOT instruction
|
||||
|
||||
SIGABRT : constant Interrupt_ID := -- used by abort,
|
||||
System.OS_Interface.SIGABRT; -- replace SIGIOT in the future
|
||||
|
||||
SIGEMT : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGEMT; -- EMT instruction
|
||||
|
||||
SIGFPE : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGFPE; -- floating point exception
|
||||
|
||||
SIGKILL : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGKILL; -- kill (cannot be caught or ignored)
|
||||
|
||||
SIGBUS : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGBUS; -- bus error
|
||||
|
||||
SIGSEGV : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGSEGV; -- segmentation violation
|
||||
|
||||
SIGSYS : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGSYS; -- bad argument to system call
|
||||
|
||||
SIGPIPE : constant Interrupt_ID := -- write on a pipe with
|
||||
System.OS_Interface.SIGPIPE; -- no one to read it
|
||||
|
||||
SIGALRM : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGALRM; -- alarm clock
|
||||
|
||||
SIGTERM : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGTERM; -- software termination signal from kill
|
||||
|
||||
SIGUSR1 : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGUSR1; -- user defined signal 1
|
||||
|
||||
SIGUSR2 : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGUSR2; -- user defined signal 2
|
||||
|
||||
SIGCHLD : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGCHLD; -- 4.3BSD's/POSIX name for SIGCLD
|
||||
|
||||
SIGWINCH : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGWINCH; -- window size change
|
||||
|
||||
SIGURG : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGURG; -- urgent condition on IO channel
|
||||
|
||||
SIGPOLL : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGPOLL; -- pollable event occurred
|
||||
|
||||
SIGIO : constant Interrupt_ID := -- input/output possible,
|
||||
System.OS_Interface.SIGIO; -- SIGPOLL alias (Solaris)
|
||||
|
||||
SIGSTOP : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGSTOP; -- stop (cannot be caught or ignored)
|
||||
|
||||
SIGTSTP : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGTSTP; -- user stop requested from tty
|
||||
|
||||
SIGCONT : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGCONT; -- stopped process has been continued
|
||||
|
||||
SIGTTIN : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGTTIN; -- background tty read attempted
|
||||
|
||||
SIGTTOU : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGTTOU; -- background tty write attempted
|
||||
|
||||
SIGVTALRM : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGVTALRM; -- virtual timer expired
|
||||
|
||||
SIGPROF : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGPROF; -- profiling timer expired
|
||||
|
||||
SIGXCPU : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGXCPU; -- CPU time limit exceeded
|
||||
|
||||
SIGXFSZ : constant Interrupt_ID :=
|
||||
System.OS_Interface.SIGXFSZ; -- filesize limit exceeded
|
||||
|
||||
end Ada.Interrupts.Names;
|
@ -6,7 +6,7 @@
|
||||
* *
|
||||
* C Implementation File *
|
||||
* *
|
||||
* Copyright (C) 1992-2011, Free Software Foundation, Inc. *
|
||||
* Copyright (C) 1992-2012, 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- *
|
||||
@ -2467,8 +2467,7 @@ __gnat_number_of_cpus (void)
|
||||
{
|
||||
int cores = 1;
|
||||
|
||||
#if defined (linux) || defined (sun) || defined (AIX) \
|
||||
|| (defined (__alpha__) && defined (_osf_)) || defined (__APPLE__)
|
||||
#if defined (linux) || defined (sun) || defined (AIX) || defined (__APPLE__)
|
||||
cores = (int) sysconf (_SC_NPROCESSORS_ONLN);
|
||||
|
||||
#elif (defined (__mips) && defined (__sgi))
|
||||
@ -3541,7 +3540,6 @@ _flush_cache()
|
||||
&& ! defined (__hpux__) \
|
||||
&& ! defined (__APPLE__) \
|
||||
&& ! defined (_AIX) \
|
||||
&& ! (defined (__alpha__) && defined (__osf__)) \
|
||||
&& ! defined (VMS) \
|
||||
&& ! defined (__MINGW32__) \
|
||||
&& ! (defined (__mips) && defined (__sgi)))
|
||||
|
@ -6,7 +6,7 @@
|
||||
* *
|
||||
* C Implementation File *
|
||||
* *
|
||||
* Copyright (C) 2005-2011, Free Software Foundation, Inc. *
|
||||
* Copyright (C) 2005-2012, 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- *
|
||||
@ -29,14 +29,6 @@
|
||||
* *
|
||||
****************************************************************************/
|
||||
|
||||
/* Tru64 UNIX V4.0F <stdlib.h> declares unsetenv() only if AES_SOURCE (which
|
||||
is plain broken, this should be _AES_SOURCE instead as everywhere else;
|
||||
Tru64 UNIX V5.1B declares it only if _BSD. */
|
||||
#if defined (__alpha__) && defined (__osf__)
|
||||
#define AES_SOURCE
|
||||
#define _BSD
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
@ -6,7 +6,7 @@
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 1999-2010, AdaCore --
|
||||
-- Copyright (C) 1999-2012, AdaCore --
|
||||
-- --
|
||||
-- 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- --
|
||||
@ -64,7 +64,6 @@
|
||||
-- LynxOS x86
|
||||
-- Solaris x86
|
||||
-- Solaris sparc
|
||||
-- Tru64 alpha
|
||||
-- OpenVMS/Alpha
|
||||
-- OpenVMS/ia64
|
||||
-- VxWorks PowerPC
|
||||
|
@ -6,7 +6,7 @@
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 1999-2011, AdaCore --
|
||||
-- Copyright (C) 1999-2012, AdaCore --
|
||||
-- --
|
||||
-- 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- --
|
||||
@ -38,7 +38,6 @@
|
||||
-- GNU/Linux x86, x86_64, ia64
|
||||
-- FreeBSD x86, x86_64
|
||||
-- Solaris sparc and x86
|
||||
-- Tru64
|
||||
-- OpenVMS Alpha and ia64
|
||||
-- Windows
|
||||
|
||||
|
@ -1454,34 +1454,6 @@ ifeq ($(strip $(filter-out rtems%,$(osys))),)
|
||||
s-interr.adb<s-interr-hwint.adb
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(filter-out alpha% dec osf%,$(targ))),)
|
||||
LIBGNAT_TARGET_PAIRS = \
|
||||
a-intnam.ads<a-intnam-tru64.ads \
|
||||
s-inmaop.adb<s-inmaop-posix.adb \
|
||||
s-intman.adb<s-intman-posix.adb \
|
||||
s-mastop.adb<s-mastop-tru64.adb \
|
||||
s-osinte.adb<s-osinte-tru64.adb \
|
||||
s-osinte.ads<s-osinte-tru64.ads \
|
||||
s-osprim.adb<s-osprim-unix.adb \
|
||||
s-taprop.adb<s-taprop-tru64.adb \
|
||||
s-tasinf.ads<s-tasinf-tru64.ads \
|
||||
s-taspri.ads<s-taspri-tru64.ads \
|
||||
s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
|
||||
s-traceb.adb<s-traceb-mastop.adb \
|
||||
system.ads<system-tru64.ads \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS)
|
||||
|
||||
TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-tru64.adb
|
||||
|
||||
EH_MECHANISM=-gcc
|
||||
GMEM_LIB=gmemlib
|
||||
MISCLIB = -lexc
|
||||
THREADSLIB = -lpthread -lmach -lexc -lrt
|
||||
GNATLIB_SHARED = gnatlib-shared-default
|
||||
LIBRARY_VERSION := $(LIB_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(host))),)
|
||||
|
||||
soext = .exe
|
||||
|
@ -3092,7 +3092,7 @@ $ gnatlink ada_unit file1.o file2.o --LINK=./my_script
|
||||
|
||||
If the @code{zero cost} exception mechanism is used, and the platform
|
||||
doesn't support automatic registration of exception tables (e.g.@: HP-UX,
|
||||
Tru64 or AIX), the simple approach described above will not work and
|
||||
or AIX), the simple approach described above will not work and
|
||||
a pre-linking phase using GNAT will be necessary.
|
||||
|
||||
@end enumerate
|
||||
@ -22164,11 +22164,6 @@ information about several specific platforms.
|
||||
@item @code{@ @ @ @ }Tasking @tab native VMS threads
|
||||
@item @code{@ @ @ @ }Exceptions @tab ZCX
|
||||
@*
|
||||
@item @b{alpha-tru64}
|
||||
@item @code{@ @ }@i{rts-native (default)}
|
||||
@item @code{@ @ @ @ }Tasking @tab native TRU64 threads
|
||||
@item @code{@ @ @ @ }Exceptions @tab ZCX
|
||||
@*
|
||||
@item @code{@ @ }@i{rts-sjlj}
|
||||
@item @code{@ @ @ @ }Tasking @tab native TRU64 threads
|
||||
@item @code{@ @ @ @ }Exceptions @tab SJLJ
|
||||
|
@ -6,7 +6,7 @@
|
||||
* *
|
||||
* C Header File *
|
||||
* *
|
||||
* Copyright (C) 2004-2011, Free Software Foundation, Inc. *
|
||||
* Copyright (C) 2004-2012, 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- *
|
||||
@ -53,11 +53,6 @@
|
||||
/* For AIX */
|
||||
#endif
|
||||
|
||||
#ifndef _OSF_SOURCE
|
||||
#define _OSF_SOURCE 1
|
||||
/* For Tru64 */
|
||||
#endif
|
||||
|
||||
/** No system header may be included prior to this point since on some targets
|
||||
** we need to redefine FD_SETSIZE.
|
||||
**/
|
||||
@ -204,7 +199,7 @@
|
||||
#endif
|
||||
|
||||
#if defined (_AIX) || defined (__FreeBSD__) || defined (__hpux__) || \
|
||||
defined (__osf__) || defined (_WIN32) || defined (__APPLE__)
|
||||
defined (_WIN32) || defined (__APPLE__)
|
||||
# define HAVE_THREAD_SAFE_GETxxxBYyyy 1
|
||||
|
||||
#elif defined (sgi) || defined (linux) || defined (__GLIBC__) || \
|
||||
|
150
gcc/ada/init.c
150
gcc/ada/init.c
@ -294,156 +294,6 @@ __gnat_install_handler (void)
|
||||
__gnat_handler_installed = 1;
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/* Tru64 section */
|
||||
/*****************/
|
||||
|
||||
#elif defined(__alpha__) && defined(__osf__)
|
||||
|
||||
#include <signal.h>
|
||||
#include <sys/siginfo.h>
|
||||
|
||||
extern char *__gnat_get_code_loc (struct sigcontext *);
|
||||
extern void __gnat_set_code_loc (struct sigcontext *, char *);
|
||||
extern size_t __gnat_machine_state_length (void);
|
||||
|
||||
#define HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE
|
||||
|
||||
void
|
||||
__gnat_adjust_context_for_raise (int signo, void *ucontext)
|
||||
{
|
||||
struct sigcontext *sigcontext = (struct sigcontext *) ucontext;
|
||||
|
||||
/* The unwinder expects the signal context to contain the address of the
|
||||
faulting instruction. For SIGFPE, this depends on the trap shadow
|
||||
situation (see man ieee). We nonetheless always compensate for it,
|
||||
considering that PC designates the instruction following the one that
|
||||
trapped. This is not necessarily true but corresponds to what we have
|
||||
always observed. */
|
||||
if (signo == SIGFPE)
|
||||
sigcontext->sc_pc--;
|
||||
}
|
||||
|
||||
static void
|
||||
__gnat_error_handler (int sig, siginfo_t *si, void *ucontext)
|
||||
{
|
||||
struct Exception_Data *exception;
|
||||
static int recurse = 0;
|
||||
const char *msg;
|
||||
|
||||
/* Adjusting is required for every fault context, so adjust for this one
|
||||
now, before we possibly trigger a recursive fault below. */
|
||||
__gnat_adjust_context_for_raise (sig, ucontext);
|
||||
|
||||
/* If this was an explicit signal from a "kill", just resignal it. */
|
||||
if (SI_FROMUSER (si))
|
||||
{
|
||||
signal (sig, SIG_DFL);
|
||||
kill (getpid(), sig);
|
||||
}
|
||||
|
||||
/* Otherwise, treat it as something we handle. */
|
||||
switch (sig)
|
||||
{
|
||||
case SIGSEGV:
|
||||
/* If the problem was permissions, this is a constraint error.
|
||||
Likewise if the failing address isn't maximally aligned or if
|
||||
we've recursed.
|
||||
|
||||
??? Using a static variable here isn't task-safe, but it's
|
||||
much too hard to do anything else and we're just determining
|
||||
which exception to raise. */
|
||||
if (si->si_code == SEGV_ACCERR
|
||||
|| (long) si->si_addr == 0
|
||||
|| (((long) si->si_addr) & 3) != 0
|
||||
|| recurse)
|
||||
{
|
||||
exception = &constraint_error;
|
||||
msg = "SIGSEGV";
|
||||
}
|
||||
else
|
||||
{
|
||||
/* See if the page before the faulting page is accessible. Do that
|
||||
by trying to access it. We'd like to simply try to access
|
||||
4096 + the faulting address, but it's not guaranteed to be
|
||||
the actual address, just to be on the same page. */
|
||||
recurse++;
|
||||
((volatile char *)
|
||||
((long) si->si_addr & - getpagesize ()))[getpagesize ()];
|
||||
exception = &storage_error;
|
||||
msg = "stack overflow or erroneous memory access";
|
||||
}
|
||||
break;
|
||||
|
||||
case SIGBUS:
|
||||
exception = &program_error;
|
||||
msg = "SIGBUS";
|
||||
break;
|
||||
|
||||
case SIGFPE:
|
||||
exception = &constraint_error;
|
||||
msg = "SIGFPE";
|
||||
break;
|
||||
|
||||
default:
|
||||
exception = &program_error;
|
||||
msg = "unhandled signal";
|
||||
}
|
||||
|
||||
recurse = 0;
|
||||
Raise_From_Signal_Handler (exception, CONST_CAST (char *, msg));
|
||||
}
|
||||
|
||||
void
|
||||
__gnat_install_handler (void)
|
||||
{
|
||||
struct sigaction act;
|
||||
|
||||
/* Setup signal handler to map synchronous signals to appropriate
|
||||
exceptions. Make sure that the handler isn't interrupted by another
|
||||
signal that might cause a scheduling event! */
|
||||
|
||||
act.sa_handler = (void (*) (int)) __gnat_error_handler;
|
||||
act.sa_flags = SA_RESTART | SA_NODEFER | SA_SIGINFO;
|
||||
sigemptyset (&act.sa_mask);
|
||||
|
||||
/* Do not install handlers if interrupt state is "System". */
|
||||
if (__gnat_get_interrupt_state (SIGABRT) != 's')
|
||||
sigaction (SIGABRT, &act, NULL);
|
||||
if (__gnat_get_interrupt_state (SIGFPE) != 's')
|
||||
sigaction (SIGFPE, &act, NULL);
|
||||
if (__gnat_get_interrupt_state (SIGILL) != 's')
|
||||
sigaction (SIGILL, &act, NULL);
|
||||
if (__gnat_get_interrupt_state (SIGSEGV) != 's')
|
||||
sigaction (SIGSEGV, &act, NULL);
|
||||
if (__gnat_get_interrupt_state (SIGBUS) != 's')
|
||||
sigaction (SIGBUS, &act, NULL);
|
||||
|
||||
__gnat_handler_installed = 1;
|
||||
}
|
||||
|
||||
/* Routines called by s-mastop-tru64.adb. */
|
||||
|
||||
#define SC_GP 29
|
||||
|
||||
char *
|
||||
__gnat_get_code_loc (struct sigcontext *context)
|
||||
{
|
||||
return (char *) context->sc_pc;
|
||||
}
|
||||
|
||||
void
|
||||
__gnat_set_code_loc (struct sigcontext *context, char *pc)
|
||||
{
|
||||
context->sc_pc = (long) pc;
|
||||
}
|
||||
|
||||
size_t
|
||||
__gnat_machine_state_length (void)
|
||||
{
|
||||
return sizeof (struct sigcontext);
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/* HP-UX section */
|
||||
/*****************/
|
||||
|
@ -6,7 +6,7 @@
|
||||
* *
|
||||
* C Implementation File *
|
||||
* *
|
||||
* Copyright (C) 1992-2011, Free Software Foundation, Inc. *
|
||||
* Copyright (C) 1992-2012, 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- *
|
||||
@ -96,19 +96,7 @@ extern "C" {
|
||||
#define SHARED 'H'
|
||||
#define STATIC 'T'
|
||||
|
||||
#if defined (__osf__)
|
||||
const char *__gnat_object_file_option = "-Wl,-input,";
|
||||
const char *__gnat_run_path_option = "-Wl,-rpath,";
|
||||
int __gnat_link_max = 10000;
|
||||
unsigned char __gnat_objlist_file_supported = 1;
|
||||
char __gnat_shared_libgnat_default = STATIC;
|
||||
char __gnat_shared_libgcc_default = STATIC;
|
||||
unsigned char __gnat_using_gnu_linker = 0;
|
||||
const char *__gnat_object_library_extension = ".a";
|
||||
unsigned char __gnat_separate_run_path_options = 0;
|
||||
const char *__gnat_default_libgcc_subdir = "lib";
|
||||
|
||||
#elif defined (sgi)
|
||||
#if defined (sgi)
|
||||
const char *__gnat_object_file_option = "-Wl,-objectlist,";
|
||||
const char *__gnat_run_path_option = "-Wl,-rpath,";
|
||||
int __gnat_link_max = 5000;
|
||||
|
@ -6,7 +6,7 @@
|
||||
-- --
|
||||
-- B o d y --
|
||||
-- --
|
||||
-- Copyright (C) 2001-2009, Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 2001-2012, 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- --
|
||||
@ -61,7 +61,6 @@
|
||||
-- HP-UX
|
||||
-- Irix
|
||||
-- Solaris
|
||||
-- Tru64
|
||||
-- Alpha OpenVMS
|
||||
|
||||
-- NOTE FOR FUTURE PLATFORMS SUPPORT: It is assumed that type Duration is
|
||||
|
@ -1,168 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT COMPILER COMPONENTS --
|
||||
-- --
|
||||
-- M L I B . T G T . S P E C I F I C --
|
||||
-- (Tru64 Version) --
|
||||
-- --
|
||||
-- B o d y --
|
||||
-- --
|
||||
-- Copyright (C) 2002-2008, 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
|
||||
-- for more details. You should have received a copy of the GNU General --
|
||||
-- Public License distributed with GNAT; see file COPYING3. If not, go to --
|
||||
-- http://www.gnu.org/licenses for a complete copy of the license. --
|
||||
-- --
|
||||
-- GNAT was originally developed by the GNAT team at New York University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- This is the Tru64 version of the body
|
||||
|
||||
with MLib.Fil;
|
||||
with MLib.Utl;
|
||||
with Opt;
|
||||
with Output; use Output;
|
||||
|
||||
package body MLib.Tgt.Specific is
|
||||
|
||||
use MLib;
|
||||
|
||||
-- Non default subprogram
|
||||
|
||||
procedure Build_Dynamic_Library
|
||||
(Ofiles : Argument_List;
|
||||
Options : Argument_List;
|
||||
Interfaces : Argument_List;
|
||||
Lib_Filename : String;
|
||||
Lib_Dir : String;
|
||||
Symbol_Data : Symbol_Record;
|
||||
Driver_Name : Name_Id := No_Name;
|
||||
Lib_Version : String := "";
|
||||
Auto_Init : Boolean := False);
|
||||
|
||||
function Is_Archive_Ext (Ext : String) return Boolean;
|
||||
|
||||
function PIC_Option return String;
|
||||
|
||||
-- Local variables
|
||||
|
||||
Expect_Unresolved : aliased String := "-Wl,-expect_unresolved,*";
|
||||
|
||||
---------------------------
|
||||
-- Build_Dynamic_Library --
|
||||
---------------------------
|
||||
|
||||
procedure Build_Dynamic_Library
|
||||
(Ofiles : Argument_List;
|
||||
Options : Argument_List;
|
||||
Interfaces : Argument_List;
|
||||
Lib_Filename : String;
|
||||
Lib_Dir : String;
|
||||
Symbol_Data : Symbol_Record;
|
||||
Driver_Name : Name_Id := No_Name;
|
||||
Lib_Version : String := "";
|
||||
Auto_Init : Boolean := False)
|
||||
is
|
||||
pragma Unreferenced (Interfaces);
|
||||
pragma Unreferenced (Symbol_Data);
|
||||
pragma Unreferenced (Auto_Init);
|
||||
-- Initialization is done through the constructor mechanism
|
||||
|
||||
Lib_File : constant String :=
|
||||
"lib" & Fil.Append_To (Lib_Filename, DLL_Ext);
|
||||
|
||||
Lib_Path : constant String :=
|
||||
Lib_Dir & Directory_Separator & Lib_File;
|
||||
|
||||
Version_Arg : String_Access;
|
||||
Symbolic_Link_Needed : Boolean := False;
|
||||
|
||||
begin
|
||||
if Opt.Verbose_Mode then
|
||||
Write_Str ("building relocatable shared library ");
|
||||
Write_Line (Lib_Path);
|
||||
end if;
|
||||
|
||||
-- If specified, add automatic elaboration/finalization
|
||||
|
||||
if Lib_Version = "" then
|
||||
Utl.Gcc
|
||||
(Output_File => Lib_Path,
|
||||
Objects => Ofiles,
|
||||
Options => Options & Expect_Unresolved'Access,
|
||||
Options_2 => No_Argument_List,
|
||||
Driver_Name => Driver_Name);
|
||||
|
||||
else
|
||||
declare
|
||||
Maj_Version : constant String :=
|
||||
Major_Id_Name (Lib_File, Lib_Version);
|
||||
begin
|
||||
if Maj_Version'Length /= 0 then
|
||||
Version_Arg := new String'("-Wl,-soname," & Maj_Version);
|
||||
|
||||
else
|
||||
Version_Arg := new String'("-Wl,-soname," & Lib_Version);
|
||||
end if;
|
||||
|
||||
if Is_Absolute_Path (Lib_Version) then
|
||||
Utl.Gcc
|
||||
(Output_File => Lib_Version,
|
||||
Objects => Ofiles,
|
||||
Options =>
|
||||
Options & Version_Arg & Expect_Unresolved'Access,
|
||||
Options_2 => No_Argument_List,
|
||||
Driver_Name => Driver_Name);
|
||||
Symbolic_Link_Needed := Lib_Version /= Lib_Path;
|
||||
|
||||
else
|
||||
Utl.Gcc
|
||||
(Output_File => Lib_Dir & Directory_Separator & Lib_Version,
|
||||
Objects => Ofiles,
|
||||
Options =>
|
||||
Options & Version_Arg & Expect_Unresolved'Access,
|
||||
Options_2 => No_Argument_List,
|
||||
Driver_Name => Driver_Name);
|
||||
Symbolic_Link_Needed :=
|
||||
Lib_Dir & Directory_Separator & Lib_Version /= Lib_Path;
|
||||
end if;
|
||||
|
||||
if Symbolic_Link_Needed then
|
||||
Create_Sym_Links
|
||||
(Lib_Path, Lib_Version, Lib_Dir, Maj_Version);
|
||||
end if;
|
||||
end;
|
||||
end if;
|
||||
end Build_Dynamic_Library;
|
||||
|
||||
--------------------
|
||||
-- Is_Archive_Ext --
|
||||
--------------------
|
||||
|
||||
function Is_Archive_Ext (Ext : String) return Boolean is
|
||||
begin
|
||||
return Ext = ".a" or else Ext = ".so";
|
||||
end Is_Archive_Ext;
|
||||
|
||||
----------------
|
||||
-- PIC_Option --
|
||||
----------------
|
||||
|
||||
function PIC_Option return String is
|
||||
begin
|
||||
return "";
|
||||
end PIC_Option;
|
||||
|
||||
begin
|
||||
Build_Dynamic_Library_Ptr := Build_Dynamic_Library'Access;
|
||||
Is_Archive_Ext_Ptr := Is_Archive_Ext'Access;
|
||||
PIC_Option_Ptr := PIC_Option'Access;
|
||||
end MLib.Tgt.Specific;
|
@ -1,163 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT COMPILER COMPONENTS --
|
||||
-- --
|
||||
-- SYSTEM.MACHINE_STATE_OPERATIONS --
|
||||
-- --
|
||||
-- B o d y --
|
||||
-- (Version for Alpha/Dec Unix) --
|
||||
-- --
|
||||
-- Copyright (C) 1999-2010, AdaCore --
|
||||
-- --
|
||||
-- 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. --
|
||||
-- --
|
||||
-- As a special exception under Section 7 of GPL version 3, you are granted --
|
||||
-- additional permissions described in the GCC Runtime Library Exception, --
|
||||
-- version 3.1, as published by the Free Software Foundation. --
|
||||
-- --
|
||||
-- You should have received a copy of the GNU General Public License and --
|
||||
-- a copy of the GCC Runtime Library Exception along with this program; --
|
||||
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
|
||||
-- <http://www.gnu.org/licenses/>. --
|
||||
-- --
|
||||
-- GNAT was originally developed by the GNAT team at New York University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- This version of System.Machine_State_Operations is for use on
|
||||
-- Alpha systems running DEC Unix.
|
||||
|
||||
with System.Memory;
|
||||
|
||||
package body System.Machine_State_Operations is
|
||||
|
||||
pragma Linker_Options ("-lexc");
|
||||
-- Needed for definitions of exc_capture_context and exc_virtual_unwind
|
||||
|
||||
----------------------------
|
||||
-- Allocate_Machine_State --
|
||||
----------------------------
|
||||
|
||||
function Allocate_Machine_State return Machine_State is
|
||||
use System.Storage_Elements;
|
||||
|
||||
function c_machine_state_length return Storage_Offset;
|
||||
pragma Import (C, c_machine_state_length, "__gnat_machine_state_length");
|
||||
|
||||
begin
|
||||
return Machine_State
|
||||
(Memory.Alloc (Memory.size_t (c_machine_state_length)));
|
||||
end Allocate_Machine_State;
|
||||
|
||||
----------------
|
||||
-- Fetch_Code --
|
||||
----------------
|
||||
|
||||
function Fetch_Code (Loc : Code_Loc) return Code_Loc is
|
||||
begin
|
||||
return Loc;
|
||||
end Fetch_Code;
|
||||
|
||||
------------------------
|
||||
-- Free_Machine_State --
|
||||
------------------------
|
||||
|
||||
procedure Free_Machine_State (M : in out Machine_State) is
|
||||
begin
|
||||
Memory.Free (Address (M));
|
||||
M := Machine_State (Null_Address);
|
||||
end Free_Machine_State;
|
||||
|
||||
------------------
|
||||
-- Get_Code_Loc --
|
||||
------------------
|
||||
|
||||
function Get_Code_Loc (M : Machine_State) return Code_Loc is
|
||||
Asm_Call_Size : constant := 4;
|
||||
|
||||
function c_get_code_loc (M : Machine_State) return Code_Loc;
|
||||
pragma Import (C, c_get_code_loc, "__gnat_get_code_loc");
|
||||
|
||||
-- Code_Loc returned by c_get_code_loc is the return point but here we
|
||||
-- want Get_Code_Loc to return the call point. Under DEC Unix a call
|
||||
-- asm instruction takes 4 bytes. So we must remove this value from
|
||||
-- c_get_code_loc to have the call point.
|
||||
|
||||
Loc : constant Code_Loc := c_get_code_loc (M);
|
||||
|
||||
begin
|
||||
if Loc = 0 then
|
||||
return 0;
|
||||
else
|
||||
return Loc - Asm_Call_Size;
|
||||
end if;
|
||||
end Get_Code_Loc;
|
||||
|
||||
--------------------------
|
||||
-- Machine_State_Length --
|
||||
--------------------------
|
||||
|
||||
function Machine_State_Length
|
||||
return System.Storage_Elements.Storage_Offset
|
||||
is
|
||||
use System.Storage_Elements;
|
||||
|
||||
function c_machine_state_length return Storage_Offset;
|
||||
pragma Import (C, c_machine_state_length, "__gnat_machine_state_length");
|
||||
|
||||
begin
|
||||
return c_machine_state_length;
|
||||
end Machine_State_Length;
|
||||
|
||||
---------------
|
||||
-- Pop_Frame --
|
||||
---------------
|
||||
|
||||
procedure Pop_Frame (M : Machine_State) is
|
||||
procedure exc_virtual_unwind (Fcn : System.Address; M : Machine_State);
|
||||
pragma Import (C, exc_virtual_unwind, "exc_virtual_unwind");
|
||||
|
||||
function exc_lookup_function (Loc : Code_Loc) return System.Address;
|
||||
pragma Import (C, exc_lookup_function, "exc_lookup_function_entry");
|
||||
|
||||
procedure c_set_code_loc (M : Machine_State; Loc : Code_Loc);
|
||||
pragma Import (C, c_set_code_loc, "__gnat_set_code_loc");
|
||||
|
||||
-- Look for a code-range descriptor table containing the PC of the
|
||||
-- specified machine state. If we don't find any, attempting to unwind
|
||||
-- further would fail so we set the machine state's code location to a
|
||||
-- value indicating that the top of the call chain is reached. This
|
||||
-- happens when the function at the address pointed to by PC has not
|
||||
-- been registered with the unwinding machinery, as with the __istart
|
||||
-- functions generated by the linker in presence of initialization
|
||||
-- routines for example.
|
||||
|
||||
Prf : constant System.Address := exc_lookup_function (Get_Code_Loc (M));
|
||||
|
||||
begin
|
||||
if Prf = System.Null_Address then
|
||||
c_set_code_loc (M, 0);
|
||||
else
|
||||
exc_virtual_unwind (Prf, M);
|
||||
end if;
|
||||
end Pop_Frame;
|
||||
|
||||
-----------------------
|
||||
-- Set_Machine_State --
|
||||
-----------------------
|
||||
|
||||
procedure Set_Machine_State (M : Machine_State) is
|
||||
procedure c_capture_context (M : Machine_State);
|
||||
pragma Import (C, c_capture_context, "exc_capture_context");
|
||||
begin
|
||||
c_capture_context (M);
|
||||
Pop_Frame (M);
|
||||
end Set_Machine_State;
|
||||
|
||||
end System.Machine_State_Operations;
|
@ -7,7 +7,7 @@
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 2000-2011, Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 2000-2012, 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- --
|
||||
@ -85,12 +85,6 @@ pragma Style_Checks ("M32766");
|
||||
**/
|
||||
#define _XOPEN_SOURCE 500
|
||||
|
||||
#elif defined (__alpha__) && defined (__osf__)
|
||||
/** For Tru64 UNIX, _XOPEN_SOURCE must be defined, otherwise CLOCK_REALTIME
|
||||
** is not defined.
|
||||
**/
|
||||
#define _XOPEN_SOURCE 500
|
||||
|
||||
#elif defined (__mips) && defined (__sgi)
|
||||
/** For IRIX 6, _XOPEN5 must be defined and _XOPEN_IOV_MAX must be used as
|
||||
** IOV_MAX, otherwise IOV_MAX is not defined. IRIX 5 has neither.
|
||||
@ -111,14 +105,6 @@ pragma Style_Checks ("M32766");
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
|
||||
#if defined (__alpha__) && defined (__osf__)
|
||||
/** Tru64 is unable to do vector IO operations with default value of IOV_MAX,
|
||||
** so its value is redefined to a small one which is known to work properly.
|
||||
**/
|
||||
#undef IOV_MAX
|
||||
#define IOV_MAX 16
|
||||
#endif
|
||||
|
||||
#if defined (__VMS)
|
||||
/** VMS is unable to do vector IO operations with default value of IOV_MAX,
|
||||
** so its value is redefined to a small one which is known to work properly.
|
||||
@ -978,15 +964,6 @@ CND(AF_INET, "IPv4 address family")
|
||||
# undef AF_INET6
|
||||
#endif
|
||||
|
||||
/**
|
||||
** Tru64 UNIX V4.0F defines AF_INET6 without IPv6 support, specifically
|
||||
** without struct sockaddr_in6. We use _SS_MAXSIZE (used for the definition
|
||||
** of struct sockaddr_storage on Tru64 UNIX V5.1) to detect this.
|
||||
**/
|
||||
#if defined(__osf__) && !defined(_SS_MAXSIZE)
|
||||
# undef AF_INET6
|
||||
#endif
|
||||
|
||||
#ifndef AF_INET6
|
||||
# define AF_INET6 -1
|
||||
#else
|
||||
|
@ -1,142 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
|
||||
-- --
|
||||
-- S Y S T E M . O S _ I N T E R F A C E --
|
||||
-- --
|
||||
-- B o d y --
|
||||
-- --
|
||||
-- Copyright (C) 1998-2009, Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- GNARL 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. --
|
||||
-- --
|
||||
-- As a special exception under Section 7 of GPL version 3, you are granted --
|
||||
-- additional permissions described in the GCC Runtime Library Exception, --
|
||||
-- version 3.1, as published by the Free Software Foundation. --
|
||||
-- --
|
||||
-- You should have received a copy of the GNU General Public License and --
|
||||
-- a copy of the GCC Runtime Library Exception along with this program; --
|
||||
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
|
||||
-- <http://www.gnu.org/licenses/>. --
|
||||
-- --
|
||||
-- GNARL was developed by the GNARL team at Florida State University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies, Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- This is the DEC Unix version of this package
|
||||
|
||||
-- This package encapsulates all direct interfaces to OS services
|
||||
-- that are needed by children of System.
|
||||
|
||||
pragma Polling (Off);
|
||||
-- Turn off polling, we do not want ATC polling to take place during
|
||||
-- tasking operations. It causes infinite loops and other problems.
|
||||
|
||||
with Interfaces.C; use Interfaces.C;
|
||||
with System.Machine_Code; use System.Machine_Code;
|
||||
|
||||
package body System.OS_Interface is
|
||||
|
||||
--------------------
|
||||
-- Get_Stack_Base --
|
||||
--------------------
|
||||
|
||||
function Get_Stack_Base (thread : pthread_t) return Address is
|
||||
pragma Unreferenced (thread);
|
||||
begin
|
||||
return Null_Address;
|
||||
end Get_Stack_Base;
|
||||
|
||||
------------------
|
||||
-- pthread_init --
|
||||
------------------
|
||||
|
||||
procedure pthread_init is
|
||||
begin
|
||||
null;
|
||||
end pthread_init;
|
||||
|
||||
------------------
|
||||
-- pthread_self --
|
||||
------------------
|
||||
|
||||
function pthread_self return pthread_t is
|
||||
Self : pthread_t;
|
||||
begin
|
||||
Asm ("call_pal 0x9e" & ASCII.LF & ASCII.HT &
|
||||
"bis $31, $0, %0",
|
||||
Outputs => pthread_t'Asm_Output ("=r", Self),
|
||||
Clobber => "$0",
|
||||
Volatile => True);
|
||||
return Self;
|
||||
end pthread_self;
|
||||
|
||||
----------------------
|
||||
-- Hide_Yellow_Zone --
|
||||
----------------------
|
||||
|
||||
procedure Hide_Unhide_Yellow_Zone (Hide : Boolean) is
|
||||
type Teb_Ptr is access all pthread_teb_t;
|
||||
Teb : Teb_Ptr;
|
||||
Res : Interfaces.C.int;
|
||||
pragma Unreferenced (Res);
|
||||
|
||||
begin
|
||||
-- Get the Thread Environment Block address
|
||||
|
||||
Asm ("call_pal 0x9e" & ASCII.LF & ASCII.HT &
|
||||
"bis $31, $0, %0",
|
||||
Outputs => Teb_Ptr'Asm_Output ("=r", Teb),
|
||||
Clobber => "$0",
|
||||
Volatile => True);
|
||||
|
||||
-- Stick a guard page right above the Yellow Zone if it exists
|
||||
|
||||
if Teb.all.stack_yellow /= Teb.all.stack_guard then
|
||||
Res :=
|
||||
mprotect
|
||||
(Teb.all.stack_yellow, Get_Page_Size,
|
||||
prot => (if Hide then PROT_ON else PROT_OFF));
|
||||
end if;
|
||||
end Hide_Unhide_Yellow_Zone;
|
||||
|
||||
-----------------
|
||||
-- To_Duration --
|
||||
-----------------
|
||||
|
||||
function To_Duration (TS : timespec) return Duration is
|
||||
begin
|
||||
return Duration (TS.tv_sec) + Duration (TS.tv_nsec) / 10#1#E9;
|
||||
end To_Duration;
|
||||
|
||||
-----------------
|
||||
-- To_Timespec --
|
||||
-----------------
|
||||
|
||||
function To_Timespec (D : Duration) return timespec is
|
||||
S : time_t;
|
||||
F : Duration;
|
||||
|
||||
begin
|
||||
S := time_t (Long_Long_Integer (D));
|
||||
F := D - Duration (S);
|
||||
|
||||
-- If F has negative value due to a round-up, adjust for positive F
|
||||
-- value.
|
||||
|
||||
if F < 0.0 then
|
||||
S := S - 1;
|
||||
F := F + 1.0;
|
||||
end if;
|
||||
|
||||
return timespec'(tv_sec => S,
|
||||
tv_nsec => long (Long_Long_Integer (F * 10#1#E9)));
|
||||
end To_Timespec;
|
||||
|
||||
end System.OS_Interface;
|
@ -1,585 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
|
||||
-- --
|
||||
-- S Y S T E M . O S _ I N T E R F A C E --
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 1991-1994, Florida State University --
|
||||
-- Copyright (C) 1995-2011, 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. --
|
||||
-- --
|
||||
-- As a special exception under Section 7 of GPL version 3, you are granted --
|
||||
-- additional permissions described in the GCC Runtime Library Exception, --
|
||||
-- version 3.1, as published by the Free Software Foundation. --
|
||||
-- --
|
||||
-- You should have received a copy of the GNU General Public License and --
|
||||
-- a copy of the GCC Runtime Library Exception along with this program; --
|
||||
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
|
||||
-- <http://www.gnu.org/licenses/>. --
|
||||
-- --
|
||||
-- GNARL was developed by the GNARL team at Florida State University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies, Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- This is the Tru64 version of this package
|
||||
|
||||
-- This package encapsulates all direct interfaces to OS services
|
||||
-- that are needed by the tasking run-time (libgnarl).
|
||||
|
||||
-- PLEASE DO NOT add any with-clauses to this package or remove the pragma
|
||||
-- Preelaborate. This package is designed to be a bottom-level (leaf) package.
|
||||
|
||||
with Interfaces.C;
|
||||
|
||||
with Ada.Unchecked_Conversion;
|
||||
|
||||
package System.OS_Interface is
|
||||
pragma Preelaborate;
|
||||
|
||||
pragma Linker_Options ("-lpthread");
|
||||
pragma Linker_Options ("-lmach");
|
||||
pragma Linker_Options ("-lexc");
|
||||
pragma Linker_Options ("-lrt");
|
||||
|
||||
subtype int is Interfaces.C.int;
|
||||
subtype short is Interfaces.C.short;
|
||||
subtype long is Interfaces.C.long;
|
||||
subtype unsigned is Interfaces.C.unsigned;
|
||||
subtype unsigned_short is Interfaces.C.unsigned_short;
|
||||
subtype unsigned_long is Interfaces.C.unsigned_long;
|
||||
subtype unsigned_char is Interfaces.C.unsigned_char;
|
||||
subtype plain_char is Interfaces.C.plain_char;
|
||||
subtype size_t is Interfaces.C.size_t;
|
||||
subtype char_array is Interfaces.C.char_array;
|
||||
|
||||
-----------
|
||||
-- Errno --
|
||||
-----------
|
||||
|
||||
function errno return int;
|
||||
pragma Import (C, errno, "_Geterrno");
|
||||
|
||||
EAGAIN : constant := 35;
|
||||
EINTR : constant := 4;
|
||||
EINVAL : constant := 22;
|
||||
ENOMEM : constant := 12;
|
||||
ETIMEDOUT : constant := 60;
|
||||
|
||||
-------------
|
||||
-- Signals --
|
||||
-------------
|
||||
|
||||
Max_Interrupt : constant := 48;
|
||||
type Signal is new int range 0 .. Max_Interrupt;
|
||||
for Signal'Size use int'Size;
|
||||
|
||||
SIGHUP : constant := 1; -- hangup
|
||||
SIGINT : constant := 2; -- interrupt (rubout)
|
||||
SIGQUIT : constant := 3; -- quit (ASCD FS)
|
||||
SIGILL : constant := 4; -- illegal instruction (not reset)
|
||||
SIGTRAP : constant := 5; -- trace trap (not reset)
|
||||
SIGABRT : constant := 6; -- used by abort, replace SIGIOT in the future
|
||||
SIGIOT : constant := 6; -- abort (terminate) process
|
||||
SIGLOST : constant := 6; -- old BSD signal ??
|
||||
SIGEMT : constant := 7; -- EMT instruction
|
||||
SIGFPE : constant := 8; -- floating point exception
|
||||
SIGKILL : constant := 9; -- kill (cannot be caught or ignored)
|
||||
SIGBUS : constant := 10; -- bus error
|
||||
SIGSEGV : constant := 11; -- segmentation violation
|
||||
SIGSYS : constant := 12; -- bad argument to system call
|
||||
SIGPIPE : constant := 13; -- write on a pipe with no one to read it
|
||||
SIGALRM : constant := 14; -- alarm clock
|
||||
SIGTERM : constant := 15; -- software termination signal from kill
|
||||
SIGURG : constant := 16; -- urgent condition on IO channel
|
||||
SIGIOINT : constant := 16; -- printer to backend error signal
|
||||
SIGSTOP : constant := 17; -- stop (cannot be caught or ignored)
|
||||
SIGTSTP : constant := 18; -- user stop requested from tty
|
||||
SIGCONT : constant := 19; -- stopped process has been continued
|
||||
SIGCHLD : constant := 20; -- child status change
|
||||
SIGTTIN : constant := 21; -- background tty read attempted
|
||||
SIGTTOU : constant := 22; -- background tty write attempted
|
||||
SIGPOLL : constant := 23; -- I/O possible, or completed
|
||||
SIGIO : constant := 23; -- STREAMS version of SIGPOLL
|
||||
SIGAIO : constant := 23; -- base lan i/o
|
||||
SIGPTY : constant := 23; -- pty i/o
|
||||
SIGXCPU : constant := 24; -- CPU time limit exceeded
|
||||
SIGXFSZ : constant := 25; -- filesize limit exceeded
|
||||
SIGVTALRM : constant := 26; -- virtual timer expired
|
||||
SIGPROF : constant := 27; -- profiling timer expired
|
||||
SIGWINCH : constant := 28; -- window size change
|
||||
SIGINFO : constant := 29; -- information request
|
||||
SIGPWR : constant := 29; -- Power Fail/Restart -- SVID3/SVR4
|
||||
SIGUSR1 : constant := 30; -- user defined signal 1
|
||||
SIGUSR2 : constant := 31; -- user defined signal 2
|
||||
SIGRESV : constant := 32; -- reserved by Digital for future use
|
||||
|
||||
SIGADAABORT : constant := SIGABRT;
|
||||
|
||||
type Signal_Set is array (Natural range <>) of Signal;
|
||||
|
||||
Unmasked : constant Signal_Set := (0 .. 0 => SIGTRAP);
|
||||
Reserved : constant Signal_Set := (SIGALRM, SIGABRT, SIGKILL, SIGSTOP);
|
||||
|
||||
type sigset_t is private;
|
||||
|
||||
function sigaddset (set : access sigset_t; sig : Signal) return int;
|
||||
pragma Import (C, sigaddset);
|
||||
|
||||
function sigdelset (set : access sigset_t; sig : Signal) return int;
|
||||
pragma Import (C, sigdelset);
|
||||
|
||||
function sigfillset (set : access sigset_t) return int;
|
||||
pragma Import (C, sigfillset);
|
||||
|
||||
function sigismember (set : access sigset_t; sig : Signal) return int;
|
||||
pragma Import (C, sigismember);
|
||||
|
||||
function sigemptyset (set : access sigset_t) return int;
|
||||
pragma Import (C, sigemptyset);
|
||||
|
||||
type union_type_3 is new String (1 .. 116);
|
||||
type siginfo_t is record
|
||||
si_signo : int;
|
||||
si_errno : int;
|
||||
si_code : int;
|
||||
X_data : union_type_3;
|
||||
end record;
|
||||
for siginfo_t'Size use 8 * 128;
|
||||
pragma Convention (C, siginfo_t);
|
||||
|
||||
type struct_sigaction is record
|
||||
sa_handler : System.Address;
|
||||
sa_mask : sigset_t;
|
||||
sa_flags : int;
|
||||
sa_signo : int;
|
||||
end record;
|
||||
pragma Convention (C, struct_sigaction);
|
||||
type struct_sigaction_ptr is access all struct_sigaction;
|
||||
|
||||
SIG_BLOCK : constant := 1;
|
||||
SIG_UNBLOCK : constant := 2;
|
||||
SIG_SETMASK : constant := 3;
|
||||
|
||||
SIG_DFL : constant := 0;
|
||||
SIG_IGN : constant := 1;
|
||||
|
||||
SA_NODEFER : constant := 8;
|
||||
SA_SIGINFO : constant := 16#40#;
|
||||
SA_ONSTACK : constant := 16#01#;
|
||||
|
||||
function sigaction
|
||||
(sig : Signal;
|
||||
act : struct_sigaction_ptr;
|
||||
oact : struct_sigaction_ptr) return int;
|
||||
pragma Import (C, sigaction);
|
||||
|
||||
----------
|
||||
-- Time --
|
||||
----------
|
||||
|
||||
type timespec is private;
|
||||
|
||||
function nanosleep (rqtp, rmtp : access timespec) return int;
|
||||
pragma Import (C, nanosleep);
|
||||
|
||||
type clockid_t is new int;
|
||||
|
||||
function clock_gettime
|
||||
(clock_id : clockid_t;
|
||||
tp : access timespec) return int;
|
||||
pragma Import (C, clock_gettime);
|
||||
|
||||
function To_Duration (TS : timespec) return Duration;
|
||||
pragma Inline (To_Duration);
|
||||
|
||||
function To_Timespec (D : Duration) return timespec;
|
||||
pragma Inline (To_Timespec);
|
||||
|
||||
type struct_timezone is record
|
||||
tz_minuteswest : int;
|
||||
tz_dsttime : int;
|
||||
end record;
|
||||
pragma Convention (C, struct_timezone);
|
||||
|
||||
-------------------------
|
||||
-- Priority Scheduling --
|
||||
-------------------------
|
||||
|
||||
SCHED_FIFO : constant := 1;
|
||||
SCHED_RR : constant := 2;
|
||||
SCHED_OTHER : constant := 3;
|
||||
SCHED_LFI : constant := 5;
|
||||
|
||||
-------------
|
||||
-- Process --
|
||||
-------------
|
||||
|
||||
type pid_t is private;
|
||||
|
||||
function kill (pid : pid_t; sig : Signal) return int;
|
||||
pragma Import (C, kill);
|
||||
|
||||
function getpid return pid_t;
|
||||
pragma Import (C, getpid);
|
||||
|
||||
BIND_NO_INHERIT : constant := 1;
|
||||
|
||||
function bind_to_cpu
|
||||
(pid : pid_t;
|
||||
cpu_mask : unsigned_long;
|
||||
flag : unsigned_long := BIND_NO_INHERIT) return int;
|
||||
pragma Import (C, bind_to_cpu);
|
||||
|
||||
-------------
|
||||
-- Threads --
|
||||
-------------
|
||||
|
||||
type Thread_Body is access
|
||||
function (arg : System.Address) return System.Address;
|
||||
pragma Convention (C, Thread_Body);
|
||||
|
||||
function Thread_Body_Access is new
|
||||
Ada.Unchecked_Conversion (System.Address, Thread_Body);
|
||||
|
||||
type pthread_t is private;
|
||||
subtype Thread_Id is pthread_t;
|
||||
|
||||
type pthread_mutex_t is limited private;
|
||||
type pthread_cond_t is limited private;
|
||||
type pthread_attr_t is limited private;
|
||||
type pthread_mutexattr_t is limited private;
|
||||
type pthread_condattr_t is limited private;
|
||||
type pthread_key_t is private;
|
||||
|
||||
PTHREAD_CREATE_DETACHED : constant := 1;
|
||||
|
||||
PTHREAD_SCOPE_PROCESS : constant := 0;
|
||||
PTHREAD_SCOPE_SYSTEM : constant := 1;
|
||||
|
||||
PTHREAD_EXPLICIT_SCHED : constant := 1;
|
||||
|
||||
-----------
|
||||
-- Stack --
|
||||
-----------
|
||||
|
||||
Stack_Base_Available : constant Boolean := False;
|
||||
-- Indicates if the stack base is available on this target
|
||||
|
||||
function Get_Stack_Base (thread : pthread_t) return Address;
|
||||
pragma Inline (Get_Stack_Base);
|
||||
-- Returns the stack base of the specified thread. Only call this function
|
||||
-- when Stack_Base_Available is True.
|
||||
|
||||
function Get_Page_Size return size_t;
|
||||
function Get_Page_Size return Address;
|
||||
pragma Import (C, Get_Page_Size, "getpagesize");
|
||||
-- Returns the size of a page
|
||||
|
||||
PROT_NONE : constant := 0;
|
||||
PROT_READ : constant := 1;
|
||||
PROT_WRITE : constant := 2;
|
||||
PROT_EXEC : constant := 4;
|
||||
PROT_ALL : constant := PROT_READ + PROT_WRITE + PROT_EXEC;
|
||||
|
||||
PROT_ON : constant := PROT_READ;
|
||||
PROT_OFF : constant := PROT_ALL;
|
||||
|
||||
function mprotect (addr : Address; len : size_t; prot : int) return int;
|
||||
pragma Import (C, mprotect);
|
||||
|
||||
procedure Hide_Unhide_Yellow_Zone (Hide : Boolean);
|
||||
-- Every thread except the initial one features an overflow warning area
|
||||
-- (called the Yellow Zone) which is just above the overflow guard area
|
||||
-- on the stack (called the Red Zone). During task execution, we want
|
||||
-- signals from the Red Zone, so we need to hide the Yellow Zone. This
|
||||
-- procedure is called at the start of task execution (with Hide set True)
|
||||
-- to hide the Yellow Zone, and at the end of task execution (with Hide
|
||||
-- set False) to unhide the Yellow Zone.
|
||||
|
||||
---------------------------------------
|
||||
-- Nonstandard Thread Initialization --
|
||||
---------------------------------------
|
||||
|
||||
procedure pthread_init;
|
||||
pragma Inline (pthread_init);
|
||||
-- This is a dummy procedure to share some GNULLI files
|
||||
|
||||
-------------------------
|
||||
-- POSIX.1c Section 3 --
|
||||
-------------------------
|
||||
|
||||
function sigwait
|
||||
(set : access sigset_t;
|
||||
sig : access Signal) return int;
|
||||
pragma Import (C, sigwait, "__sigwaitd10");
|
||||
|
||||
function pthread_kill
|
||||
(thread : pthread_t;
|
||||
sig : Signal) return int;
|
||||
pragma Import (C, pthread_kill);
|
||||
|
||||
function pthread_sigmask
|
||||
(how : int;
|
||||
set : access sigset_t;
|
||||
oset : access sigset_t) return int;
|
||||
pragma Import (C, pthread_sigmask);
|
||||
|
||||
--------------------------
|
||||
-- POSIX.1c Section 11 --
|
||||
--------------------------
|
||||
|
||||
function pthread_mutexattr_init (attr : access pthread_mutexattr_t)
|
||||
return int;
|
||||
pragma Import (C, pthread_mutexattr_init);
|
||||
|
||||
function pthread_mutexattr_destroy
|
||||
(attr : access pthread_mutexattr_t) return int;
|
||||
pragma Import (C, pthread_mutexattr_destroy);
|
||||
|
||||
function pthread_mutex_init
|
||||
(mutex : access pthread_mutex_t;
|
||||
attr : access pthread_mutexattr_t) return int;
|
||||
pragma Import (C, pthread_mutex_init, "__pthread_mutex_init");
|
||||
|
||||
function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int;
|
||||
pragma Import (C, pthread_mutex_destroy, "__pthread_mutex_destroy");
|
||||
|
||||
function pthread_mutex_lock (mutex : access pthread_mutex_t) return int;
|
||||
pragma Import (C, pthread_mutex_lock, "__pthread_mutex_lock");
|
||||
|
||||
function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int;
|
||||
pragma Import (C, pthread_mutex_unlock, "__pthread_mutex_unlock");
|
||||
|
||||
function pthread_condattr_init
|
||||
(attr : access pthread_condattr_t) return int;
|
||||
pragma Import (C, pthread_condattr_init);
|
||||
|
||||
function pthread_condattr_destroy
|
||||
(attr : access pthread_condattr_t) return int;
|
||||
pragma Import (C, pthread_condattr_destroy);
|
||||
|
||||
function pthread_cond_init
|
||||
(cond : access pthread_cond_t;
|
||||
attr : access pthread_condattr_t) return int;
|
||||
pragma Import (C, pthread_cond_init, "__pthread_cond_init");
|
||||
|
||||
function pthread_cond_destroy (cond : access pthread_cond_t) return int;
|
||||
pragma Import (C, pthread_cond_destroy, "__pthread_cond_destroy");
|
||||
|
||||
function pthread_cond_signal (cond : access pthread_cond_t) return int;
|
||||
pragma Import (C, pthread_cond_signal, "__pthread_cond_signal");
|
||||
|
||||
function pthread_cond_wait
|
||||
(cond : access pthread_cond_t;
|
||||
mutex : access pthread_mutex_t) return int;
|
||||
pragma Import (C, pthread_cond_wait, "__pthread_cond_wait");
|
||||
|
||||
function pthread_cond_timedwait
|
||||
(cond : access pthread_cond_t;
|
||||
mutex : access pthread_mutex_t;
|
||||
abstime : access timespec) return int;
|
||||
pragma Import (C, pthread_cond_timedwait, "__pthread_cond_timedwait");
|
||||
|
||||
--------------------------
|
||||
-- POSIX.1c Section 13 --
|
||||
--------------------------
|
||||
|
||||
function pthread_mutexattr_setprotocol
|
||||
(attr : access pthread_mutexattr_t;
|
||||
protocol : int) return int;
|
||||
pragma Import (C, pthread_mutexattr_setprotocol);
|
||||
|
||||
function pthread_mutexattr_setprioceiling
|
||||
(attr : access pthread_mutexattr_t;
|
||||
prioceiling : int) return int;
|
||||
pragma Import (C, pthread_mutexattr_setprioceiling);
|
||||
|
||||
type struct_sched_param is record
|
||||
sched_priority : int; -- scheduling priority
|
||||
end record;
|
||||
|
||||
function pthread_setschedparam
|
||||
(thread : pthread_t;
|
||||
policy : int;
|
||||
param : access struct_sched_param) return int;
|
||||
pragma Import (C, pthread_setschedparam);
|
||||
|
||||
function pthread_attr_setscope
|
||||
(attr : access pthread_attr_t;
|
||||
contentionscope : int) return int;
|
||||
pragma Import (C, pthread_attr_setscope);
|
||||
|
||||
function pthread_attr_setinheritsched
|
||||
(attr : access pthread_attr_t;
|
||||
inheritsched : int) return int;
|
||||
pragma Import (C, pthread_attr_setinheritsched,
|
||||
"__pthread_attr_setinheritsched");
|
||||
|
||||
function pthread_attr_setschedpolicy
|
||||
(attr : access pthread_attr_t; policy : int) return int;
|
||||
pragma Import (C, pthread_attr_setschedpolicy);
|
||||
|
||||
function pthread_attr_setschedparam
|
||||
(attr : access pthread_attr_t;
|
||||
sched_param : access struct_sched_param) return int;
|
||||
pragma Import (C, pthread_attr_setschedparam);
|
||||
|
||||
function sched_yield return int;
|
||||
pragma Import (C, sched_yield);
|
||||
|
||||
--------------------------
|
||||
-- P1003.1c Section 16 --
|
||||
--------------------------
|
||||
|
||||
function pthread_attr_init (attributes : access pthread_attr_t)
|
||||
return int;
|
||||
pragma Import (C, pthread_attr_init);
|
||||
|
||||
function pthread_attr_destroy (attributes : access pthread_attr_t)
|
||||
return int;
|
||||
pragma Import (C, pthread_attr_destroy);
|
||||
|
||||
function pthread_attr_setdetachstate
|
||||
(attr : access pthread_attr_t;
|
||||
detachstate : int) return int;
|
||||
pragma Import (C, pthread_attr_setdetachstate);
|
||||
|
||||
function pthread_attr_setstacksize
|
||||
(attr : access pthread_attr_t;
|
||||
stacksize : size_t) return int;
|
||||
pragma Import (C, pthread_attr_setstacksize, "__pthread_attr_setstacksize");
|
||||
|
||||
function pthread_create
|
||||
(thread : access pthread_t;
|
||||
attributes : access pthread_attr_t;
|
||||
start_routine : Thread_Body;
|
||||
arg : System.Address) return int;
|
||||
pragma Import (C, pthread_create, "__pthread_create");
|
||||
|
||||
procedure pthread_exit (status : System.Address);
|
||||
pragma Import (C, pthread_exit, "__pthread_exit");
|
||||
|
||||
function pthread_self return pthread_t;
|
||||
pragma Inline (pthread_self);
|
||||
|
||||
--------------------------
|
||||
-- POSIX.1c Section 17 --
|
||||
--------------------------
|
||||
|
||||
function pthread_setspecific
|
||||
(key : pthread_key_t; value : System.Address) return int;
|
||||
pragma Import (C, pthread_setspecific, "__pthread_setspecific");
|
||||
|
||||
function pthread_getspecific (key : pthread_key_t) return System.Address;
|
||||
pragma Import (C, pthread_getspecific, "__pthread_getspecific");
|
||||
|
||||
type destructor_pointer is access procedure (arg : System.Address);
|
||||
pragma Convention (C, destructor_pointer);
|
||||
|
||||
function pthread_key_create
|
||||
(key : access pthread_key_t;
|
||||
destructor : destructor_pointer) return int;
|
||||
pragma Import (C, pthread_key_create);
|
||||
|
||||
private
|
||||
|
||||
type sigset_t is new unsigned_long;
|
||||
|
||||
type pid_t is new int;
|
||||
|
||||
type time_t is new int;
|
||||
|
||||
type timespec is record
|
||||
tv_sec : time_t;
|
||||
tv_nsec : long;
|
||||
end record;
|
||||
pragma Convention (C, timespec);
|
||||
|
||||
type unsigned_long_array is array (Natural range <>) of unsigned_long;
|
||||
|
||||
type pthread_t is new System.Address;
|
||||
|
||||
type pthread_teb_t is record
|
||||
reserved1 : System.Address;
|
||||
reserved2 : System.Address;
|
||||
size : unsigned_short;
|
||||
version : unsigned_char;
|
||||
reserved3 : unsigned_char;
|
||||
external : unsigned_char;
|
||||
reserved4 : char_array (0 .. 1);
|
||||
creator : unsigned_char;
|
||||
sequence : unsigned_long;
|
||||
reserved5 : unsigned_long_array (0 .. 1);
|
||||
per_kt_area : System.Address;
|
||||
stack_base : System.Address;
|
||||
stack_reserve : System.Address;
|
||||
stack_yellow : System.Address;
|
||||
stack_guard : System.Address;
|
||||
stack_size : unsigned_long;
|
||||
tsd_values : System.Address;
|
||||
tsd_count : unsigned_long;
|
||||
reserved6 : unsigned;
|
||||
reserved7 : unsigned;
|
||||
thread_flags : unsigned;
|
||||
thd_errno : int;
|
||||
stack_hiwater : System.Address;
|
||||
home_rad : unsigned_long;
|
||||
end record;
|
||||
pragma Convention (C, pthread_teb_t);
|
||||
|
||||
type pthread_cond_t is record
|
||||
state : unsigned;
|
||||
valid : unsigned;
|
||||
name : System.Address;
|
||||
arg : unsigned;
|
||||
reserved1 : unsigned;
|
||||
sequence : unsigned_long;
|
||||
block : System.Address;
|
||||
end record;
|
||||
pragma Convention (C, pthread_cond_t);
|
||||
|
||||
type pthread_attr_t is record
|
||||
valid : long;
|
||||
name : System.Address;
|
||||
arg : unsigned_long;
|
||||
reserved : unsigned_long_array (0 .. 18);
|
||||
end record;
|
||||
pragma Convention (C, pthread_attr_t);
|
||||
|
||||
type pthread_mutex_t is record
|
||||
lock : unsigned;
|
||||
valid : unsigned;
|
||||
name : System.Address;
|
||||
arg : unsigned;
|
||||
depth : unsigned;
|
||||
sequence : unsigned_long;
|
||||
owner : unsigned_long;
|
||||
block : System.Address;
|
||||
end record;
|
||||
for pthread_mutex_t'Size use 8 * 48;
|
||||
pragma Convention (C, pthread_mutex_t);
|
||||
|
||||
type pthread_mutexattr_t is record
|
||||
valid : long;
|
||||
reserved : unsigned_long_array (0 .. 14);
|
||||
end record;
|
||||
pragma Convention (C, pthread_mutexattr_t);
|
||||
|
||||
type pthread_condattr_t is record
|
||||
valid : long;
|
||||
reserved : unsigned_long_array (0 .. 12);
|
||||
end record;
|
||||
pragma Convention (C, pthread_condattr_t);
|
||||
|
||||
type pthread_key_t is new unsigned;
|
||||
|
||||
end System.OS_Interface;
|
File diff suppressed because it is too large
Load Diff
@ -1,110 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT COMPILER COMPONENTS --
|
||||
-- --
|
||||
-- S Y S T E M . T A S K _ I N F O --
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- (Compiler Interface) --
|
||||
-- --
|
||||
-- Copyright (C) 1998-2009, 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. --
|
||||
-- --
|
||||
-- As a special exception under Section 7 of GPL version 3, you are granted --
|
||||
-- additional permissions described in the GCC Runtime Library Exception, --
|
||||
-- version 3.1, as published by the Free Software Foundation. --
|
||||
-- --
|
||||
-- You should have received a copy of the GNU General Public License and --
|
||||
-- a copy of the GCC Runtime Library Exception along with this program; --
|
||||
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
|
||||
-- <http://www.gnu.org/licenses/>. --
|
||||
-- --
|
||||
-- GNAT was originally developed by the GNAT team at New York University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- This package contains the definitions and routines associated with the
|
||||
-- implementation and use of the Task_Info pragma. It is specialized
|
||||
-- appropriately for targets that make use of this pragma.
|
||||
|
||||
-- Note: the compiler generates direct calls to this interface, via Rtsfind.
|
||||
-- Any changes to this interface may require corresponding compiler changes.
|
||||
|
||||
-- This unit may be used directly from an application program by providing
|
||||
-- an appropriate WITH, and the interface can be expected to remain stable.
|
||||
|
||||
-- This is a DEC Unix 4.0d version of this package
|
||||
|
||||
package System.Task_Info is
|
||||
pragma Preelaborate;
|
||||
pragma Elaborate_Body;
|
||||
-- To ensure that a body is allowed
|
||||
|
||||
-----------------------------------------
|
||||
-- Implementation of Task_Info Feature --
|
||||
-----------------------------------------
|
||||
|
||||
-- The Task_Info pragma:
|
||||
|
||||
-- pragma Task_Info (EXPRESSION);
|
||||
|
||||
-- allows the specification on a task by task basis of a value of type
|
||||
-- System.Task_Info.Task_Info_Type to be passed to a task when it is
|
||||
-- created. The specification of this type, and the effect on the task
|
||||
-- that is created is target dependent.
|
||||
|
||||
-- The Task_Info pragma appears within a task definition (compare the
|
||||
-- definition and implementation of pragma Priority). If no such pragma
|
||||
-- appears, then the value Unspecified_Task_Info is passed. If a pragma
|
||||
-- is present, then it supplies an alternative value. If the argument of
|
||||
-- the pragma is a discriminant reference, then the value can be set on
|
||||
-- a task by task basis by supplying the appropriate discriminant value.
|
||||
|
||||
-- Note that this means that the type used for Task_Info_Type must be
|
||||
-- suitable for use as a discriminant (i.e. a scalar or access type).
|
||||
|
||||
------------------
|
||||
-- Declarations --
|
||||
------------------
|
||||
|
||||
type Scope_Type is
|
||||
(Process_Scope,
|
||||
-- Contend only with threads in same process
|
||||
|
||||
System_Scope,
|
||||
-- Contend with all threads on same CPU
|
||||
|
||||
Default_Scope);
|
||||
|
||||
type Thread_Attributes is record
|
||||
Bind_To_Cpu_Number : Integer;
|
||||
-- -1: Do nothing
|
||||
-- 0: Unbind
|
||||
-- 1-N: Bind all unbound threads to this CPU
|
||||
|
||||
Contention_Scope : Scope_Type;
|
||||
end record;
|
||||
|
||||
type Task_Info_Type is access all Thread_Attributes;
|
||||
-- Type used for passing information to task create call, using the
|
||||
-- Task_Info pragma. This type may be specialized for individual
|
||||
-- implementations, but it must be a type that can be used as a
|
||||
-- discriminant (i.e. a scalar or access type).
|
||||
|
||||
Unspecified_Thread_Attribute : aliased Thread_Attributes :=
|
||||
Thread_Attributes'(-1, Default_Scope);
|
||||
|
||||
Unspecified_Task_Info : constant Task_Info_Type :=
|
||||
Unspecified_Thread_Attribute'Access;
|
||||
-- Value passed to task in the absence of a Task_Info pragma
|
||||
-- Don't call new here because the tasking run time has not been
|
||||
-- elaborated yet, so calling Task_Lock is unsafe.
|
||||
|
||||
end System.Task_Info;
|
@ -1,119 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
|
||||
-- --
|
||||
-- S Y S T E M . T A S K _ P R I M I T I V E S --
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 1991-2011, Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- GNARL 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. --
|
||||
-- --
|
||||
-- As a special exception under Section 7 of GPL version 3, you are granted --
|
||||
-- additional permissions described in the GCC Runtime Library Exception, --
|
||||
-- version 3.1, as published by the Free Software Foundation. --
|
||||
-- --
|
||||
-- You should have received a copy of the GNU General Public License and --
|
||||
-- a copy of the GCC Runtime Library Exception along with this program; --
|
||||
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
|
||||
-- <http://www.gnu.org/licenses/>. --
|
||||
-- --
|
||||
-- GNARL was developed by the GNARL team at Florida State University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies, Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- This is the DEC Unix 4.0 version of this package
|
||||
|
||||
-- This package provides low-level support for most tasking features
|
||||
|
||||
pragma Polling (Off);
|
||||
-- Turn off polling, we do not want ATC polling to take place during tasking
|
||||
-- operations. It causes infinite loops and other problems.
|
||||
|
||||
with Interfaces.C;
|
||||
|
||||
with System.OS_Interface;
|
||||
|
||||
package System.Task_Primitives is
|
||||
pragma Preelaborate;
|
||||
|
||||
type Lock is limited private;
|
||||
-- Should be used for implementation of protected objects
|
||||
|
||||
type RTS_Lock is limited private;
|
||||
-- Should be used inside the runtime system. The difference between Lock
|
||||
-- and the RTS_Lock is that the later one serves only as a semaphore so
|
||||
-- that do not check for ceiling violations.
|
||||
|
||||
type Suspension_Object is limited private;
|
||||
-- Should be used for the implementation of Ada.Synchronous_Task_Control
|
||||
|
||||
type Task_Body_Access is access procedure;
|
||||
-- Pointer to the task body's entry point (or possibly a wrapper
|
||||
-- declared local to the GNARL).
|
||||
|
||||
type Private_Data is limited private;
|
||||
-- Any information that the GNULLI needs maintained on a per-task basis.
|
||||
-- A component of this type is guaranteed to be included
|
||||
|
||||
subtype Task_Address is System.Address;
|
||||
-- In some versions of Task_Primitives, notably for VMS, Task_Address is
|
||||
-- the short version of address defined in System.Aux_DEC. To avoid
|
||||
-- dragging Aux_DEC into tasking packages a tasking specific subtype is
|
||||
-- defined here.
|
||||
|
||||
Task_Address_Size : constant := Standard'Address_Size;
|
||||
-- The size of Task_Address
|
||||
|
||||
Alternate_Stack_Size : constant := 0;
|
||||
-- No alternate signal stack is used on this platform
|
||||
|
||||
private
|
||||
|
||||
type Lock is record
|
||||
L : aliased System.OS_Interface.pthread_mutex_t;
|
||||
Ceiling : Interfaces.C.int;
|
||||
end record;
|
||||
|
||||
type RTS_Lock is new System.OS_Interface.pthread_mutex_t;
|
||||
|
||||
type Suspension_Object is record
|
||||
State : Boolean;
|
||||
pragma Atomic (State);
|
||||
-- Boolean that indicates whether the object is open. This field is
|
||||
-- marked Atomic to ensure that we can read its value without locking
|
||||
-- the access to the Suspension_Object.
|
||||
|
||||
Waiting : Boolean;
|
||||
-- Flag showing if there is a task already suspended on this object
|
||||
|
||||
L : aliased System.OS_Interface.pthread_mutex_t;
|
||||
-- Protection for ensuring mutual exclusion on the Suspension_Object
|
||||
|
||||
CV : aliased System.OS_Interface.pthread_cond_t;
|
||||
-- Condition variable used to queue threads until the is signaled
|
||||
end record;
|
||||
|
||||
type Private_Data is record
|
||||
Thread : aliased System.OS_Interface.pthread_t;
|
||||
pragma Atomic (Thread);
|
||||
-- Thread field may be updated by two different threads of control.
|
||||
-- (See, Enter_Task and Create_Task in s-taprop.adb). They put the same
|
||||
-- value (thr_self value). We do not want to use lock on those
|
||||
-- operations and the only thing we have to make sure is that they are
|
||||
-- updated in atomic fashion.
|
||||
|
||||
CV : aliased System.OS_Interface.pthread_cond_t;
|
||||
|
||||
L : aliased RTS_Lock;
|
||||
-- Protection for all components is lock L
|
||||
end record;
|
||||
|
||||
end System.Task_Primitives;
|
@ -252,7 +252,7 @@ __gnat_ttyname (int filedes)
|
||||
#endif
|
||||
|
||||
#if defined (linux) || defined (sun) || defined (sgi) \
|
||||
|| (defined (__osf__) && ! defined (__alpha_vxworks)) || defined (WINNT) \
|
||||
|| ! defined (__alpha_vxworks) || defined (WINNT) \
|
||||
|| defined (__MACHTEN__) || defined (__hpux__) || defined (_AIX) \
|
||||
|| (defined (__svr4__) && defined (i386)) || defined (__Lynx__) \
|
||||
|| defined (__CYGWIN__) || defined (__FreeBSD__) || defined (__OpenBSD__) \
|
||||
@ -310,7 +310,7 @@ getc_immediate_common (FILE *stream,
|
||||
int waiting)
|
||||
{
|
||||
#if defined (linux) || defined (sun) || defined (sgi) \
|
||||
|| (defined (__osf__) && ! defined (__alpha_vxworks)) \
|
||||
|| ! defined (__alpha_vxworks) \
|
||||
|| defined (__CYGWIN32__) || defined (__MACHTEN__) || defined (__hpux__) \
|
||||
|| defined (_AIX) || (defined (__svr4__) && defined (i386)) \
|
||||
|| defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) \
|
||||
@ -331,7 +331,7 @@ getc_immediate_common (FILE *stream,
|
||||
termios_rec.c_lflag = termios_rec.c_lflag & ~ICANON & ~ECHO;
|
||||
|
||||
#if defined(linux) || defined (sun) || defined (sgi) \
|
||||
|| defined (__osf__) || defined (__MACHTEN__) || defined (__hpux__) \
|
||||
|| defined (__MACHTEN__) || defined (__hpux__) \
|
||||
|| defined (_AIX) || (defined (__svr4__) && defined (i386)) \
|
||||
|| defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) \
|
||||
|| defined (__GLIBC__) || defined (__APPLE__)
|
||||
@ -842,11 +842,11 @@ __gnat_localtime_tzoff (const time_t *timer, const int *is_historic, long *off)
|
||||
(*Unlock_Task) ();
|
||||
}
|
||||
|
||||
/* Darwin, Free BSD, Linux, Tru64, where component tm_gmtoff is present in
|
||||
/* Darwin, Free BSD, Linux, where component tm_gmtoff is present in
|
||||
struct tm */
|
||||
|
||||
#elif defined (__APPLE__) || defined (__FreeBSD__) || defined (linux) ||\
|
||||
(defined (__alpha__) && defined (__osf__)) || defined (__GLIBC__)
|
||||
defined (__GLIBC__)
|
||||
{
|
||||
localtime_r (timer, &tp);
|
||||
*off = tp.tm_gmtoff;
|
||||
|
@ -1,214 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT RUN-TIME COMPONENTS --
|
||||
-- --
|
||||
-- S Y S T E M --
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- (DEC Unix Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
-- apply solely to the contents of the part following the private keyword. --
|
||||
-- --
|
||||
-- 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. --
|
||||
-- --
|
||||
-- As a special exception under Section 7 of GPL version 3, you are granted --
|
||||
-- additional permissions described in the GCC Runtime Library Exception, --
|
||||
-- version 3.1, as published by the Free Software Foundation. --
|
||||
-- --
|
||||
-- You should have received a copy of the GNU General Public License and --
|
||||
-- a copy of the GCC Runtime Library Exception along with this program; --
|
||||
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
|
||||
-- <http://www.gnu.org/licenses/>. --
|
||||
-- --
|
||||
-- GNAT was originally developed by the GNAT team at New York University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
package System is
|
||||
pragma Pure;
|
||||
-- Note that we take advantage of the implementation permission to make
|
||||
-- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada
|
||||
-- 2005, this is Pure in any case (AI-362).
|
||||
|
||||
type Name is (SYSTEM_NAME_GNAT);
|
||||
System_Name : constant Name := SYSTEM_NAME_GNAT;
|
||||
|
||||
-- System-Dependent Named Numbers
|
||||
|
||||
Min_Int : constant := Long_Long_Integer'First;
|
||||
Max_Int : constant := Long_Long_Integer'Last;
|
||||
|
||||
Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size;
|
||||
Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1;
|
||||
|
||||
Max_Base_Digits : constant := Long_Long_Float'Digits;
|
||||
Max_Digits : constant := Long_Long_Float'Digits;
|
||||
|
||||
Max_Mantissa : constant := 63;
|
||||
Fine_Delta : constant := 2.0 ** (-Max_Mantissa);
|
||||
|
||||
Tick : constant := 1.0 / 1024.0;
|
||||
|
||||
-- Storage-related Declarations
|
||||
|
||||
type Address is private;
|
||||
pragma Preelaborable_Initialization (Address);
|
||||
Null_Address : constant Address;
|
||||
|
||||
Storage_Unit : constant := 8;
|
||||
Word_Size : constant := 64;
|
||||
Memory_Size : constant := 2 ** 64;
|
||||
|
||||
-- Address comparison
|
||||
|
||||
function "<" (Left, Right : Address) return Boolean;
|
||||
function "<=" (Left, Right : Address) return Boolean;
|
||||
function ">" (Left, Right : Address) return Boolean;
|
||||
function ">=" (Left, Right : Address) return Boolean;
|
||||
function "=" (Left, Right : Address) return Boolean;
|
||||
|
||||
pragma Import (Intrinsic, "<");
|
||||
pragma Import (Intrinsic, "<=");
|
||||
pragma Import (Intrinsic, ">");
|
||||
pragma Import (Intrinsic, ">=");
|
||||
pragma Import (Intrinsic, "=");
|
||||
|
||||
-- Other System-Dependent Declarations
|
||||
|
||||
type Bit_Order is (High_Order_First, Low_Order_First);
|
||||
Default_Bit_Order : constant Bit_Order := Low_Order_First;
|
||||
pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning
|
||||
|
||||
-- Priority-related Declarations (RM D.1)
|
||||
|
||||
Max_Priority : constant Positive := 60;
|
||||
Max_Interrupt_Priority : constant Positive := 63;
|
||||
|
||||
subtype Any_Priority is Integer range 0 .. 63;
|
||||
subtype Priority is Any_Priority range 0 .. 60;
|
||||
subtype Interrupt_Priority is Any_Priority range 61 .. 63;
|
||||
|
||||
Default_Priority : constant Priority := 30;
|
||||
|
||||
private
|
||||
|
||||
type Address is mod Memory_Size;
|
||||
Null_Address : constant Address := 0;
|
||||
|
||||
--------------------------------------
|
||||
-- System Implementation Parameters --
|
||||
--------------------------------------
|
||||
|
||||
-- These parameters provide information about the target that is used
|
||||
-- by the compiler. They are in the private part of System, where they
|
||||
-- can be accessed using the special circuitry in the Targparm unit
|
||||
-- whose source should be consulted for more detailed descriptions
|
||||
-- of the individual switch values.
|
||||
|
||||
Backend_Divide_Checks : constant Boolean := False;
|
||||
Backend_Overflow_Checks : constant Boolean := True;
|
||||
Command_Line_Args : constant Boolean := True;
|
||||
Configurable_Run_Time : constant Boolean := False;
|
||||
Denorm : constant Boolean := False;
|
||||
Duration_32_Bits : constant Boolean := False;
|
||||
Exit_Status_Supported : constant Boolean := True;
|
||||
Fractional_Fixed_Ops : constant Boolean := False;
|
||||
Frontend_Layout : constant Boolean := False;
|
||||
Machine_Overflows : constant Boolean := False;
|
||||
Machine_Rounds : constant Boolean := True;
|
||||
Preallocated_Stacks : constant Boolean := False;
|
||||
Signed_Zeros : constant Boolean := True;
|
||||
Stack_Check_Default : constant Boolean := True;
|
||||
Stack_Check_Probes : constant Boolean := True;
|
||||
Stack_Check_Limits : constant Boolean := False;
|
||||
Support_Aggregates : constant Boolean := True;
|
||||
Support_Composite_Assign : constant Boolean := True;
|
||||
Support_Composite_Compare : constant Boolean := True;
|
||||
Support_Long_Shifts : constant Boolean := True;
|
||||
Always_Compatible_Rep : constant Boolean := True;
|
||||
Suppress_Standard_Library : constant Boolean := False;
|
||||
Use_Ada_Main_Program_Name : constant Boolean := False;
|
||||
ZCX_By_Default : constant Boolean := True;
|
||||
|
||||
-- Note: Denorm is False because denormals are only handled properly
|
||||
-- if the -mieee switch is set, and we do not require this usage.
|
||||
|
||||
---------------------------
|
||||
-- Underlying Priorities --
|
||||
---------------------------
|
||||
|
||||
-- Important note: this section of the file must come AFTER the
|
||||
-- definition of the system implementation parameters to ensure
|
||||
-- that the value of these parameters is available for analysis
|
||||
-- of the declarations here (using Rtsfind at compile time).
|
||||
|
||||
-- The underlying priorities table provides a generalized mechanism
|
||||
-- for mapping from Ada priorities to system priorities. In some
|
||||
-- cases a 1-1 mapping is not the convenient or optimal choice.
|
||||
|
||||
-- For Dec Unix 4.0d, we use a default 1-to-1 mapping that provides
|
||||
-- the full range of 64 priorities available from the operating system.
|
||||
|
||||
-- On DU prior to 4.0d, less than 64 priorities are available so there
|
||||
-- are two possibilities:
|
||||
|
||||
-- Limit your range of priorities to the range provided by the
|
||||
-- OS (e.g 16 .. 32 on 4.0b)
|
||||
|
||||
-- Replace the standard table as described below
|
||||
|
||||
-- To replace the default values of the Underlying_Priorities mapping,
|
||||
-- copy this source file into your build directory, edit the file to
|
||||
-- reflect your desired behavior, and recompile with the command:
|
||||
|
||||
-- $ gcc -c -O3 -gnatpgn system.ads
|
||||
|
||||
-- then recompile the run-time parts that depend on this package:
|
||||
|
||||
-- $ gnatmake -a -gnatn -O3 <your application>
|
||||
|
||||
-- then force rebuilding your application if you need different options:
|
||||
|
||||
-- $ gnatmake -f <your options> <your application>
|
||||
|
||||
type Priorities_Mapping is array (Any_Priority) of Integer;
|
||||
pragma Suppress_Initialization (Priorities_Mapping);
|
||||
-- Suppress initialization in case gnat.adc specifies Normalize_Scalars
|
||||
|
||||
Underlying_Priorities : constant Priorities_Mapping :=
|
||||
|
||||
(Priority'First => 0,
|
||||
|
||||
1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5,
|
||||
6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10,
|
||||
11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15,
|
||||
16 => 16, 17 => 17, 18 => 18, 19 => 19, 20 => 20,
|
||||
21 => 21, 22 => 22, 23 => 23, 24 => 24, 25 => 25,
|
||||
26 => 26, 27 => 27, 28 => 28, 29 => 29,
|
||||
|
||||
Default_Priority => 30,
|
||||
|
||||
31 => 31, 32 => 32, 33 => 33, 34 => 34, 35 => 35,
|
||||
36 => 36, 37 => 37, 38 => 38, 39 => 39, 40 => 40,
|
||||
41 => 41, 42 => 42, 43 => 43, 44 => 44, 45 => 45,
|
||||
46 => 46, 47 => 47, 48 => 48, 49 => 49, 50 => 50,
|
||||
51 => 51, 52 => 52, 53 => 53, 54 => 54, 55 => 55,
|
||||
56 => 56, 57 => 57, 58 => 58, 59 => 59,
|
||||
|
||||
Priority'Last => 60,
|
||||
|
||||
61 => 61, 62 => 62,
|
||||
|
||||
Interrupt_Priority'Last => 63);
|
||||
|
||||
end System;
|
@ -6,7 +6,7 @@
|
||||
* *
|
||||
* C Implementation File *
|
||||
* *
|
||||
* Copyright (C) 2008-2011, AdaCore *
|
||||
* Copyright (C) 2008-2012, AdaCore *
|
||||
* *
|
||||
* 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- *
|
||||
@ -976,9 +976,6 @@ __gnat_setup_winsize (void *desc, int rows, int columns)
|
||||
|| defined (__DragonFly__)
|
||||
# define FREEBSD
|
||||
#endif
|
||||
#if defined (__alpha__) && defined (__osf__)
|
||||
# define OSF1
|
||||
#endif
|
||||
#if defined (__mips) && defined (__sgi)
|
||||
# define IRIX
|
||||
#endif
|
||||
@ -1048,18 +1045,6 @@ __gnat_setup_winsize (void *desc, int rows, int columns)
|
||||
#define USE_CLONE_DEVICE "/dev/ptmx"
|
||||
#elif defined (_AIX)
|
||||
#define USE_CLONE_DEVICE "/dev/ptc"
|
||||
#elif defined (OSF1)
|
||||
/* On Tru64, the systems offers various interfaces to open a terminal:
|
||||
- /dev/ptmx: this the system V driver (stream based),
|
||||
- /dev/ptmx_bsd: the non stream based clone device,
|
||||
- the openpty function which use BSD interface.
|
||||
|
||||
Using directly /dev/ptmx_bsd on Tru64 5.1B seems to consume all the
|
||||
available slave ptys (why ?). When using openpty it seems that the function
|
||||
handles the creation of entries in /dev/pts when necessary and so avoid this
|
||||
starvation issue. The pty man entry suggests also to use openpty.
|
||||
*/
|
||||
#define USE_OPENPTY
|
||||
#elif defined (__hpux__)
|
||||
/* On HP-UX we use the streamed version. Using the non streamed version is not
|
||||
recommanded (through "/dev/ptym/clone"). Indeed it seems that there are
|
||||
|
@ -1,3 +1,10 @@
|
||||
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
|
||||
handling.
|
||||
* c-pragma.c (handle_pragma_extern_prefix): Remove.
|
||||
(init_pragma): Don't register extern_prefix.
|
||||
|
||||
2012-03-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* c-common.c (c_common_get_narrower): Use c_common_type_for_size.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Define builtin-in macros for the C family front ends.
|
||||
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||
2011, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
@ -886,9 +886,6 @@ c_cpp_builtins (cpp_reader *pfile)
|
||||
/* Show the availability of some target pragmas. */
|
||||
cpp_define (pfile, "__PRAGMA_REDEFINE_EXTNAME");
|
||||
|
||||
if (targetm.handle_pragma_extern_prefix)
|
||||
cpp_define (pfile, "__PRAGMA_EXTERN_PREFIX");
|
||||
|
||||
/* Make the choice of the stack protector runtime visible to source code.
|
||||
The macro names and values here were chosen for compatibility with an
|
||||
earlier implementation, i.e. ProPolice. */
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Handle #pragma, system V.4 style. Supports #pragma weak and #pragma pack.
|
||||
Copyright (C) 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
2006, 2007, 2008, 2009, 2010, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
@ -371,7 +371,7 @@ handle_pragma_weak (cpp_reader * ARG_UNUSED (dummy))
|
||||
|
||||
/* GCC supports two #pragma directives for renaming the external
|
||||
symbol associated with a declaration (DECL_ASSEMBLER_NAME), for
|
||||
compatibility with the Solaris and Tru64 system headers. GCC also
|
||||
compatibility with the Solaris and VMS system headers. GCC also
|
||||
has its own notation for this, __asm__("name") annotations.
|
||||
|
||||
Corner cases of these features and their interaction:
|
||||
@ -497,27 +497,6 @@ add_to_renaming_pragma_list (tree oldname, tree newname)
|
||||
/* The current prefix set by #pragma extern_prefix. */
|
||||
GTY(()) tree pragma_extern_prefix;
|
||||
|
||||
/* #pragma extern_prefix "prefix" */
|
||||
static void
|
||||
handle_pragma_extern_prefix (cpp_reader * ARG_UNUSED (dummy))
|
||||
{
|
||||
tree prefix, x;
|
||||
enum cpp_ttype t;
|
||||
|
||||
if (pragma_lex (&prefix) != CPP_STRING)
|
||||
GCC_BAD ("malformed #pragma extern_prefix, ignored");
|
||||
t = pragma_lex (&x);
|
||||
if (t != CPP_EOF)
|
||||
warning (OPT_Wpragmas, "junk at end of %<#pragma extern_prefix%>");
|
||||
|
||||
if (targetm.handle_pragma_extern_prefix)
|
||||
/* Note that the length includes the null terminator. */
|
||||
pragma_extern_prefix = (TREE_STRING_LENGTH (prefix) > 1 ? prefix : NULL);
|
||||
else if (warn_unknown_pragmas > in_system_header)
|
||||
warning (OPT_Wunknown_pragmas,
|
||||
"#pragma extern_prefix not supported on this target");
|
||||
}
|
||||
|
||||
/* Hook from the front ends to apply the results of one of the preceding
|
||||
pragmas that rename variables. */
|
||||
|
||||
@ -1396,7 +1375,6 @@ init_pragma (void)
|
||||
|
||||
c_register_pragma_with_expansion (0, "redefine_extname",
|
||||
handle_pragma_redefine_extname);
|
||||
c_register_pragma (0, "extern_prefix", handle_pragma_extern_prefix);
|
||||
|
||||
c_register_pragma_with_expansion (0, "message", handle_pragma_message);
|
||||
|
||||
|
@ -246,8 +246,7 @@ case ${target} in
|
||||
arm*-*-*eabi* \
|
||||
)
|
||||
;;
|
||||
alpha*-dec-osf5.1* \
|
||||
| arm*-*-ecos-elf \
|
||||
arm*-*-ecos-elf \
|
||||
| arm*-*-elf \
|
||||
| arm*-*-freebsd* \
|
||||
| arm*-*-linux* \
|
||||
@ -788,30 +787,6 @@ alpha*-*-openbsd*)
|
||||
# default x-alpha is only appropriate for dec-osf.
|
||||
target_cpu_default="MASK_GAS"
|
||||
;;
|
||||
alpha*-dec-osf5.1*)
|
||||
if test x$stabs = xyes
|
||||
then
|
||||
tm_file="${tm_file} dbx.h"
|
||||
fi
|
||||
# mips-tfile and mips-tdump are only used with the native assembler
|
||||
# and require the Tru64 UNIX <a.out.h>, so only build native.
|
||||
if test x$gas != xyes && test x${host} = x${target}
|
||||
then
|
||||
extra_passes="mips-tfile mips-tdump"
|
||||
fi
|
||||
use_collect2=yes
|
||||
tmake_file="t-slibgcc"
|
||||
tm_file="${tm_file} alpha/osf5.h"
|
||||
tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1"
|
||||
extra_options="${extra_options} rpath.opt alpha/osf5.opt"
|
||||
extra_headers=va_list.h
|
||||
use_gcc_stdint=provide
|
||||
case ${enable_threads} in
|
||||
"" | yes | posix)
|
||||
thread_file='posix'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
alpha*-dec-*vms*)
|
||||
tm_file="${tm_file} vms/vms.h alpha/vms.h"
|
||||
tmake_file="${tmake_file} alpha/t-vms"
|
||||
|
@ -1,6 +1,6 @@
|
||||
# GCC host-specific configuration file.
|
||||
# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2007, 2008, 2009,
|
||||
# 2010, 2011 Free Software Foundation, Inc.
|
||||
# 2010, 2011, 2012 Free Software Foundation, Inc.
|
||||
|
||||
#This file is part of GCC.
|
||||
|
||||
@ -108,9 +108,9 @@ case ${host} in
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
alpha*-*-linux* | alpha*-dec-osf*)
|
||||
alpha*-*-linux*)
|
||||
case ${target} in
|
||||
alpha*-*-linux* | alpha*-dec-osf*)
|
||||
alpha*-*-linux*)
|
||||
host_extra_gcc_objs="driver-alpha.o"
|
||||
host_xmake_file="${host_xmake_file} alpha/x-alpha"
|
||||
;;
|
||||
@ -193,10 +193,6 @@ case ${host} in
|
||||
prefix=/gnu
|
||||
local_prefix=/gnu/local
|
||||
;;
|
||||
alpha*-dec-osf*)
|
||||
out_host_hook_obj=host-osf.o
|
||||
host_xmake_file="${host_xmake_file} alpha/x-osf"
|
||||
;;
|
||||
alpha*-dec-*vms*)
|
||||
host_xm_file="vms/xm-vms.h"
|
||||
host_xmake_file=vms/x-vms
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Subroutines used for code generation on the DEC Alpha.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
|
||||
|
||||
@ -4673,7 +4673,7 @@ struct GTY(()) machine_function
|
||||
/* For OSF. */
|
||||
const char *some_ld_name;
|
||||
|
||||
/* For TARGET_LD_BUGGY_LDGP. */
|
||||
/* For flag_reorder_blocks_and_partition. */
|
||||
rtx gp_save_rtx;
|
||||
|
||||
/* For VMS condition handlers. */
|
||||
@ -7859,10 +7859,8 @@ alpha_start_function (FILE *file, const char *fnname,
|
||||
HOST_WIDE_INT sa_size;
|
||||
/* Complete stack size needed. */
|
||||
unsigned HOST_WIDE_INT frame_size;
|
||||
/* The maximum debuggable frame size (512 Kbytes using Tru64 as). */
|
||||
unsigned HOST_WIDE_INT max_frame_size = TARGET_ABI_OSF && !TARGET_GAS
|
||||
? 524288
|
||||
: 1UL << 31;
|
||||
/* The maximum debuggable frame size. */
|
||||
unsigned HOST_WIDE_INT max_frame_size = 1UL << 31;
|
||||
/* Offset from base reg to register save area. */
|
||||
HOST_WIDE_INT reg_offset;
|
||||
char *entry_label = (char *) alloca (strlen (fnname) + 6);
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Definitions of target machine for GNU compiler, for DEC Alpha.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
2000, 2001, 2002, 2004, 2005, 2007, 2008, 2009, 2010, 2011
|
||||
2000, 2001, 2002, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
|
||||
|
||||
@ -161,9 +161,6 @@ extern enum alpha_fp_trap_mode alpha_fptm;
|
||||
#ifndef TARGET_PROFILING_NEEDS_GP
|
||||
#define TARGET_PROFILING_NEEDS_GP 0
|
||||
#endif
|
||||
#ifndef TARGET_LD_BUGGY_LDGP
|
||||
#define TARGET_LD_BUGGY_LDGP 0
|
||||
#endif
|
||||
#ifndef TARGET_FIXUP_EV5_PREFETCH
|
||||
#define TARGET_FIXUP_EV5_PREFETCH 0
|
||||
#endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
;; Machine description for DEC Alpha for GNU C compiler
|
||||
;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
;; 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
|
||||
;; 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
;; Free Software Foundation, Inc.
|
||||
;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
|
||||
;;
|
||||
@ -5869,13 +5869,13 @@
|
||||
;; calculation, a jump to original landing pad is emitted in the place of the
|
||||
;; original landing pad. Since landing pad is moved, RA-relative GP
|
||||
;; calculation in the prologue of landing pad breaks. To solve this problem,
|
||||
;; we use alternative GP load approach, as in the case of TARGET_LD_BUGGY_LDGP.
|
||||
;; we use alternative GP load approach.
|
||||
|
||||
(define_expand "exception_receiver"
|
||||
[(unspec_volatile [(match_dup 0)] UNSPECV_EHR)]
|
||||
"TARGET_ABI_OSF"
|
||||
{
|
||||
if (TARGET_LD_BUGGY_LDGP || flag_reorder_blocks_and_partition)
|
||||
if (flag_reorder_blocks_and_partition)
|
||||
operands[0] = alpha_gp_save_rtx ();
|
||||
else
|
||||
operands[0] = const0_rtx;
|
||||
@ -5883,8 +5883,7 @@
|
||||
|
||||
(define_insn "*exception_receiver_2"
|
||||
[(unspec_volatile [(match_operand:DI 0 "memory_operand" "m")] UNSPECV_EHR)]
|
||||
"TARGET_ABI_OSF
|
||||
&& (TARGET_LD_BUGGY_LDGP || flag_reorder_blocks_and_partition)"
|
||||
"TARGET_ABI_OSF && flag_reorder_blocks_and_partition"
|
||||
"ldq $29,%0"
|
||||
[(set_attr "type" "ild")])
|
||||
|
||||
|
@ -1,147 +0,0 @@
|
||||
/* Tru64 UNIX host-specific hook definitions.
|
||||
Copyright (C) 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published
|
||||
by the Free Software Foundation; either version 3, or (at your
|
||||
option) any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include <sys/mman.h>
|
||||
/* Inhibit inclusion of <sys/mount.h>, unnecessary and errors out due to
|
||||
use of poisoned bcmp, bcopy. */
|
||||
#define _SYS_MOUNT_H_
|
||||
#include <sys/procfs.h>
|
||||
#include "hosthooks.h"
|
||||
#include "hosthooks-def.h"
|
||||
|
||||
|
||||
#undef HOST_HOOKS_GT_PCH_GET_ADDRESS
|
||||
#define HOST_HOOKS_GT_PCH_GET_ADDRESS osf_gt_pch_get_address
|
||||
#undef HOST_HOOKS_GT_PCH_USE_ADDRESS
|
||||
#define HOST_HOOKS_GT_PCH_USE_ADDRESS osf_gt_pch_use_address
|
||||
|
||||
/* The mmap ADDR parameter may be ignored without MAP_FIXED set. Before we
|
||||
give up, check existing mappings with ioctl(PIOCMAP) to see if the space
|
||||
is really free. */
|
||||
|
||||
static void *
|
||||
mmap_fixed (void *addr, size_t len, int prot, int flags, int fd, off_t off)
|
||||
{
|
||||
void *base;
|
||||
|
||||
base = mmap ((caddr_t) addr, len, prot, flags, fd, off);
|
||||
|
||||
if (base != addr)
|
||||
{
|
||||
/* PID_MAX is SHRT_MAX on Tru64 UNIX V4.0, but INT_MAX on V5.1.
|
||||
Allow for both. "/proc/" + INT_MAX + '\0'. */
|
||||
char pname[6+10+1];
|
||||
int procfd, nmap;
|
||||
prmap_t *pmap;
|
||||
int i, overlap = 0;
|
||||
|
||||
if (base != (void *) MAP_FAILED)
|
||||
munmap ((caddr_t) base, len);
|
||||
|
||||
/* Check if there's any mapping overlapping [addr, addr+len). */
|
||||
|
||||
snprintf (pname, sizeof (pname), "/proc/%d", getpid ());
|
||||
procfd = open (pname, O_RDONLY);
|
||||
if (procfd == -1)
|
||||
return ((void *) MAP_FAILED);
|
||||
if (ioctl (procfd, PIOCNMAP, &nmap) == -1)
|
||||
return ((void *) MAP_FAILED);
|
||||
pmap = (prmap_t *) xmalloc (sizeof (*pmap) * (nmap+1));
|
||||
if (ioctl (procfd, PIOCMAP, pmap) == -1)
|
||||
return ((void *) MAP_FAILED);
|
||||
|
||||
/* It seems like pmap[] is sorted by address, but can we rely on
|
||||
that? */
|
||||
for (i = 0; i < nmap; i++)
|
||||
{
|
||||
uintptr_t map_start = (uintptr_t) pmap[i].pr_vaddr;
|
||||
uintptr_t map_end = map_start + pmap[i].pr_size;
|
||||
|
||||
if ((uintptr_t) addr < map_end
|
||||
&& (uintptr_t) addr+len > map_start)
|
||||
{
|
||||
overlap = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
free (pmap);
|
||||
close (procfd);
|
||||
|
||||
if (!overlap)
|
||||
base = mmap ((caddr_t) addr, len, prot, flags | MAP_FIXED, fd, off);
|
||||
else
|
||||
base = mmap ((caddr_t) addr, len, prot, flags, fd, off);
|
||||
}
|
||||
|
||||
return base;
|
||||
}
|
||||
|
||||
/* For various ports, try to guess a fixed spot in the vm space that's
|
||||
probably free. Take the middle between start of text segment and
|
||||
dynamic loader space. See <sys/machine/addrconf.h> and Tru64 UNIX
|
||||
Assembly Language Programmer's Guide, p.6-18, Figure 6-3: Default Layout
|
||||
of Memory (User Program View). */
|
||||
#define TRY_EMPTY_VM_SPACE 0x20050000000
|
||||
|
||||
/* Determine a location where we might be able to reliably allocate
|
||||
SIZE bytes. FD is the PCH file, though we should return with the
|
||||
file unmapped. */
|
||||
|
||||
static void *
|
||||
osf_gt_pch_get_address (size_t size, int fd)
|
||||
{
|
||||
void *addr;
|
||||
|
||||
addr = mmap_fixed ((caddr_t) TRY_EMPTY_VM_SPACE, size,
|
||||
PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
|
||||
|
||||
/* If we failed the map, that means there's *no* free space. */
|
||||
if (addr == (void *) MAP_FAILED)
|
||||
return NULL;
|
||||
/* Unmap the area before returning. */
|
||||
munmap ((caddr_t) addr, size);
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
/* Map SIZE bytes of FD+OFFSET at BASE. Return 1 if we succeeded at
|
||||
mapping the data at BASE, -1 if we couldn't. */
|
||||
|
||||
static int
|
||||
osf_gt_pch_use_address (void *base, size_t size, int fd, size_t offset)
|
||||
{
|
||||
void *addr;
|
||||
|
||||
/* We're called with size == 0 if we're not planning to load a PCH
|
||||
file at all. This allows the hook to free any static space that
|
||||
we might have allocated at link time. */
|
||||
if (size == 0)
|
||||
return -1;
|
||||
|
||||
addr = mmap_fixed ((caddr_t) base, size,
|
||||
PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, offset);
|
||||
|
||||
return addr == base ? 1 : -1;
|
||||
}
|
||||
|
||||
|
||||
const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
|
@ -1,279 +0,0 @@
|
||||
/* Definitions of target machine for GNU compiler, for DEC Alpha on
|
||||
Tru64 UNIX V5.1.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* As of DEC OSF/1 V4.0, as can subtract adjacent labels. */
|
||||
|
||||
#undef TARGET_AS_CAN_SUBTRACT_LABELS
|
||||
#define TARGET_AS_CAN_SUBTRACT_LABELS 1
|
||||
|
||||
/* The GEM libraries for X_float are present, though not used by C. */
|
||||
|
||||
#undef TARGET_HAS_XFLOATING_LIBS
|
||||
#define TARGET_HAS_XFLOATING_LIBS 1
|
||||
|
||||
/* Tru64 UNIX V5.1 uses IEEE QUAD format. */
|
||||
#undef TARGET_DEFAULT
|
||||
#define TARGET_DEFAULT (MASK_FPREGS | MASK_LONG_DOUBLE_128)
|
||||
|
||||
/* The linker appears to perform invalid code optimizations that result
|
||||
in the ldgp emitted for the exception_receiver pattern being incorrectly
|
||||
linked. */
|
||||
#undef TARGET_LD_BUGGY_LDGP
|
||||
#define TARGET_LD_BUGGY_LDGP 1
|
||||
|
||||
/* Tru64 UNIX V5.1 has the float and long double forms of math functions. */
|
||||
#undef TARGET_C99_FUNCTIONS
|
||||
#define TARGET_C99_FUNCTIONS 1
|
||||
|
||||
/* Names to predefine in the preprocessor for this target machine. */
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do { \
|
||||
builtin_define_std ("unix"); \
|
||||
builtin_define_std ("SYSTYPE_BSD"); \
|
||||
builtin_define ("_SYSTYPE_BSD"); \
|
||||
builtin_define ("__osf__"); \
|
||||
builtin_define ("__digital__"); \
|
||||
builtin_define ("__arch64__"); \
|
||||
builtin_define ("_LONGLONG"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=xpg4"); \
|
||||
/* Tru64 UNIX V5 has a 16 byte long \
|
||||
double type and requires __X_FLOAT \
|
||||
to be defined for <math.h>. */ \
|
||||
if (LONG_DOUBLE_TYPE_SIZE == 128) \
|
||||
builtin_define ("__X_FLOAT"); \
|
||||
\
|
||||
/* Tru64 UNIX V4/V5 provide several ISO C94 \
|
||||
features protected by the corresponding \
|
||||
__STDC_VERSION__ macro. libstdc++ v3 \
|
||||
needs them as well. */ \
|
||||
if (c_dialect_cxx ()) \
|
||||
builtin_define ("__STDC_VERSION__=199409L"); \
|
||||
} while (0)
|
||||
|
||||
/* Accept DEC C flags for multithreaded programs. We use _PTHREAD_USE_D4
|
||||
instead of PTHREAD_USE_D4 since both have the same effect and the former
|
||||
doesn't invade the users' namespace. */
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC \
|
||||
"%{pthread|threads:-D_REENTRANT} %{threads:-D_PTHREAD_USE_D4}"
|
||||
|
||||
/* -mcpu=native handling only makes sense with compiler running on
|
||||
an Alpha chip. */
|
||||
#if defined(__alpha__) || defined(__alpha)
|
||||
extern const char *host_detect_local_cpu (int argc, const char **argv);
|
||||
# define EXTRA_SPEC_FUNCTIONS \
|
||||
{ "local_cpu_detect", host_detect_local_cpu },
|
||||
|
||||
# define MCPU_MTUNE_NATIVE_SPECS \
|
||||
" %{mcpu=native:%<mcpu=native %:local_cpu_detect(cpu)}" \
|
||||
" %{mtune=native:%<mtune=native %:local_cpu_detect(tune)}"
|
||||
#else
|
||||
# define MCPU_MTUNE_NATIVE_SPECS ""
|
||||
#endif
|
||||
|
||||
#define DRIVER_SELF_SPECS MCPU_MTUNE_NATIVE_SPECS
|
||||
|
||||
/* Under DEC OSF/1 V4, -p and -pg require -lprof1, and -lprof1 requires
|
||||
-lpdf. */
|
||||
|
||||
#define LIB_SPEC \
|
||||
"%{p|pg:-lprof1%{pthread|threads:_r} -lpdf} \
|
||||
%{threads: -lpthreads} %{pthread|threads: -lpthread -lmach -lexc} -lc"
|
||||
|
||||
/* Pass "-G 8" to ld because Alpha's CC does. Pass -O3 if we are
|
||||
optimizing, -O1 if we are not. Pass -S to silence `weak symbol
|
||||
multiply defined' warnings. Pass -shared, -non_shared or
|
||||
-call_shared as appropriate. Pass -hidden_symbol so that our
|
||||
constructor and call-frame data structures are not accidentally
|
||||
overridden. */
|
||||
#define LINK_SPEC \
|
||||
"-G 8 %{O*:-O3} %{!O*:-O1} -S %{static:-non_shared} \
|
||||
%{!static:%{shared:-shared -hidden_symbol _GLOBAL_*} \
|
||||
%{!shared:-call_shared}} %{pg} %{taso} %{rpath*}"
|
||||
|
||||
#define STARTFILE_SPEC \
|
||||
"%{!shared:%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}"
|
||||
|
||||
#define ENDFILE_SPEC \
|
||||
"%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
|
||||
|
||||
#define MD_STARTFILE_PREFIX "/usr/lib/cmplrs/cc/"
|
||||
|
||||
/* In Tru64 UNIX V5.1, Compaq introduced a new assembler
|
||||
(/usr/lib/cmplrs/cc/adu) which currently (versions between 3.04.29 and
|
||||
3.04.32) breaks mips-tfile. Passing the undocumented -oldas flag reverts
|
||||
to using the old assembler (/usr/lib/cmplrs/cc/as[01]).
|
||||
|
||||
It is clearly not desirable to depend on this undocumented flag, and
|
||||
Compaq wants -oldas to go away soon, but until they have released a
|
||||
new adu that works with mips-tfile, this is the only option.
|
||||
|
||||
In some versions of the DTK, the assembler driver invokes ld after
|
||||
assembly. This has been fixed in current versions, but adding -c
|
||||
works as expected for all versions. */
|
||||
|
||||
#define ASM_OLDAS_SPEC "-oldas -c"
|
||||
|
||||
/* In OSF/1 v3.2c, the assembler by default does not output file names which
|
||||
causes mips-tfile to fail. Passing -g to the assembler fixes this problem.
|
||||
??? Strictly speaking, we need -g only if the user specifies -g. Passing
|
||||
it always means that we get slightly larger than necessary object files
|
||||
if the user does not specify -g. If we don't pass -g, then mips-tfile
|
||||
will need to be fixed to work in this case. Pass -O0 since some
|
||||
optimization are broken and don't help us anyway. */
|
||||
#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_GAS) != 0
|
||||
#define ASM_SPEC "%{malpha-as:-g " ASM_OLDAS_SPEC " %{pg} -O0}"
|
||||
#else
|
||||
#define ASM_SPEC "%{!mgas:-g " ASM_OLDAS_SPEC " %{pg} -O0}"
|
||||
#endif
|
||||
|
||||
/* Specify to run a post-processor, mips-tfile after the assembler
|
||||
has run to stuff the ecoff debug information into the object file.
|
||||
This is needed because the Alpha assembler provides no way
|
||||
of specifying such information in the assembly file. */
|
||||
|
||||
#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_GAS) != 0
|
||||
|
||||
#define ASM_FINAL_SPEC "\
|
||||
%{malpha-as: %{!mno-mips-tfile: \
|
||||
\n mips-tfile %{v*: -v} \
|
||||
%{K: -I %b.o~} \
|
||||
%{!K: %{save-temps: -I %b.o~}} \
|
||||
%{c:%W{o*}%{!o*:-o %b.o}}%{!c:-o %U.o} \
|
||||
%{,assembler:%i;:%g.s}}}"
|
||||
|
||||
#else
|
||||
#define ASM_FINAL_SPEC "\
|
||||
%{!mgas: %{!mno-mips-tfile: \
|
||||
\n mips-tfile %{v*: -v} \
|
||||
%{K: -I %b.o~} \
|
||||
%{!K: %{save-temps: -I %b.o~}} \
|
||||
%{c:%W{o*}%{!o*:-o %b.o}}%{!c:-o %U.o} \
|
||||
%{,assembler:%i;:%g.s}}}"
|
||||
|
||||
#endif
|
||||
|
||||
/* Indicate that we have a stamp.h to use. */
|
||||
#ifndef CROSS_DIRECTORY_STRUCTURE
|
||||
#define HAVE_STAMP_H 1
|
||||
#endif
|
||||
|
||||
#define HAVE_ENABLE_EXECUTE_STACK
|
||||
|
||||
/* Digital UNIX V4.0E (1091)/usr/include/sys/types.h 4.3.49.9 1997/08/14 */
|
||||
#define SIZE_TYPE "long unsigned int"
|
||||
#define PTRDIFF_TYPE "long int"
|
||||
|
||||
#define SIG_ATOMIC_TYPE "int"
|
||||
|
||||
#define INT8_TYPE "signed char"
|
||||
#define INT16_TYPE "short int"
|
||||
#define INT32_TYPE "int"
|
||||
#define INT64_TYPE "long int"
|
||||
#define UINT8_TYPE "unsigned char"
|
||||
#define UINT16_TYPE "short unsigned int"
|
||||
#define UINT32_TYPE "unsigned int"
|
||||
#define UINT64_TYPE "long unsigned int"
|
||||
|
||||
#define INT_LEAST8_TYPE "signed char"
|
||||
#define INT_LEAST16_TYPE "short int"
|
||||
#define INT_LEAST32_TYPE "int"
|
||||
#define INT_LEAST64_TYPE "long int"
|
||||
#define UINT_LEAST8_TYPE "unsigned char"
|
||||
#define UINT_LEAST16_TYPE "short unsigned int"
|
||||
#define UINT_LEAST32_TYPE "unsigned int"
|
||||
#define UINT_LEAST64_TYPE "long unsigned int"
|
||||
|
||||
#define INT_FAST8_TYPE "signed char"
|
||||
#define INT_FAST16_TYPE "int"
|
||||
#define INT_FAST32_TYPE "int"
|
||||
#define INT_FAST64_TYPE "long int"
|
||||
#define UINT_FAST8_TYPE "unsigned char"
|
||||
#define UINT_FAST16_TYPE "unsigned int"
|
||||
#define UINT_FAST32_TYPE "unsigned int"
|
||||
#define UINT_FAST64_TYPE "long unsigned int"
|
||||
|
||||
#define INTPTR_TYPE "long int"
|
||||
#define UINTPTR_TYPE "long unsigned int"
|
||||
|
||||
/* The linker will stick __main into the .init section. */
|
||||
#define HAS_INIT_SECTION
|
||||
#define LD_INIT_SWITCH "-init"
|
||||
#define LD_FINI_SWITCH "-fini"
|
||||
|
||||
/* From Tru64 UNIX Object File and Symbol Table Format Specification,
|
||||
2.3.5 Alignment, p.19. */
|
||||
#define MAX_OFILE_ALIGNMENT (64 * 1024 * BITS_PER_UNIT)
|
||||
|
||||
/* Select a format to encode pointers in exception handling data. CODE
|
||||
is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
|
||||
true if the symbol may be affected by dynamic relocations.
|
||||
|
||||
We really ought to be using the SREL32 relocations that ECOFF has,
|
||||
but no version of the native assembler supports creating such things,
|
||||
and Compaq has no plans to rectify this. Worse, the dynamic loader
|
||||
cannot handle unaligned relocations, so we have to make sure that
|
||||
things get padded appropriately. */
|
||||
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
|
||||
(TARGET_GAS \
|
||||
? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \
|
||||
: DW_EH_PE_aligned)
|
||||
|
||||
/* The Tru64 UNIX assembler warns on .lcomm with SIZE 0, so use 1 in that
|
||||
case. */
|
||||
#undef ASM_OUTPUT_LOCAL
|
||||
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE,ROUNDED) \
|
||||
( fputs ("\t.lcomm ", (FILE)), \
|
||||
assemble_name ((FILE), (NAME)), \
|
||||
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED"\n", (SIZE) ? (SIZE) : 1))
|
||||
|
||||
/* This is how we tell the assembler that a symbol is weak. */
|
||||
|
||||
#define ASM_OUTPUT_WEAK_ALIAS(FILE, NAME, VALUE) \
|
||||
do \
|
||||
{ \
|
||||
(*targetm.asm_out.globalize_label) (FILE, NAME); \
|
||||
fputs ("\t.weakext\t", FILE); \
|
||||
assemble_name (FILE, NAME); \
|
||||
if (VALUE) \
|
||||
{ \
|
||||
fputc (' ', FILE); \
|
||||
assemble_name (FILE, VALUE); \
|
||||
} \
|
||||
fputc ('\n', FILE); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#define ASM_WEAKEN_LABEL(FILE, NAME) ASM_OUTPUT_WEAK_ALIAS(FILE, NAME, 0)
|
||||
|
||||
/* The native assembler doesn't understand parenthesis. */
|
||||
#define TARGET_ASM_OPEN_PAREN ""
|
||||
#define TARGET_ASM_CLOSE_PAREN ""
|
||||
|
||||
/* Handle #pragma extern_prefix. */
|
||||
#define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 1
|
||||
|
||||
#define TARGET_HAVE_NAMED_SECTIONS false
|
@ -1,42 +0,0 @@
|
||||
; Tru64 UNIX options.
|
||||
|
||||
; Copyright (C) 2011
|
||||
; Free Software Foundation, Inc.
|
||||
;
|
||||
; This file is part of GCC.
|
||||
;
|
||||
; GCC is free software; you can redistribute it and/or modify it under
|
||||
; the terms of the GNU General Public License as published by the Free
|
||||
; Software Foundation; either version 3, or (at your option) any later
|
||||
; version.
|
||||
;
|
||||
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
; for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with GCC; see the file COPYING3. If not see
|
||||
; <http://www.gnu.org/licenses/>.
|
||||
|
||||
; See the GCC internals manual (options.texi) for a description of
|
||||
; this file's format.
|
||||
|
||||
; Please try to keep this file in ASCII collating order.
|
||||
|
||||
K
|
||||
Driver
|
||||
|
||||
mno-mips-tfile
|
||||
Target RejectNegative
|
||||
|
||||
pthread
|
||||
Driver
|
||||
|
||||
taso
|
||||
Driver
|
||||
|
||||
threads
|
||||
Driver
|
||||
|
||||
; This comment is to ensure we retain the blank line above.
|
@ -1,42 +0,0 @@
|
||||
/* A replacement for Digital Unix's <va_list.h>.
|
||||
|
||||
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef __GNUC_VA_LIST
|
||||
#define __GNUC_VA_LIST
|
||||
typedef __builtin_va_list __gnuc_va_list;
|
||||
#endif
|
||||
|
||||
#if !defined(_VA_LIST) && !defined(_HIDDEN_VA_LIST)
|
||||
#define _VA_LIST
|
||||
typedef __gnuc_va_list va_list;
|
||||
|
||||
#elif defined(_HIDDEN_VA_LIST) && !defined(_HIDDEN_VA_LIST_DONE)
|
||||
#define _HIDDEN_VA_LIST_DONE
|
||||
typedef __gnuc_va_list __va_list;
|
||||
|
||||
#elif defined(_HIDDEN_VA_LIST) && defined(_VA_LIST)
|
||||
#undef _HIDDEN_VA_LIST
|
||||
|
||||
#endif
|
@ -1,4 +0,0 @@
|
||||
host-osf.o : $(srcdir)/config/alpha/host-osf.c $(CONFIG_H) $(SYSTEM_H) \
|
||||
coretypes.h hosthooks.h hosthooks-def.h $(HOOKS_H)
|
||||
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
||||
$(srcdir)/config/alpha/host-osf.c
|
13
gcc/configure
vendored
13
gcc/configure
vendored
@ -23626,11 +23626,6 @@ case "$target" in
|
||||
# with TLS support are in use, native TLS cannot work.
|
||||
set_have_as_tls=no
|
||||
;;
|
||||
*-*-osf*)
|
||||
# Tru64 UNIX loader and libc.so lack TLS support, so even if gas and
|
||||
# gld with TLS support are in use, native TLS cannot work.
|
||||
set_have_as_tls=no
|
||||
;;
|
||||
# TLS was introduced in the Solaris 9 FCS release and backported to
|
||||
# Solaris 8 patches. Support for GNU-style TLS on x86 was only
|
||||
# introduced in Solaris 9 4/04, replacing the earlier Sun style that Sun
|
||||
@ -23818,12 +23813,6 @@ elif test x$gcc_cv_ld != x; then
|
||||
gcc_cv_ld_static_dynamic=yes
|
||||
else
|
||||
case "$target" in
|
||||
# Tru64 UNIX support -noso/-so_archive instead of -Bstatic/-Bdynamic.
|
||||
alpha*-dec-osf*)
|
||||
gcc_cv_ld_static_dynamic=yes
|
||||
gcc_cv_ld_static_option="-noso"
|
||||
gcc_cv_ld_dynamic_option="-so_archive"
|
||||
;;
|
||||
# HP-UX ld uses -a flags to select between shared and archive.
|
||||
*-*-hpux*)
|
||||
if test x"$gnu_ld" = xno; then
|
||||
@ -23944,7 +23933,7 @@ $as_echo "$gcc_cv_lto_plugin" >&6; }
|
||||
|
||||
case "$target" in
|
||||
# All TARGET_ABI_OSF targets.
|
||||
alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
|
||||
alpha*-*-linux* | alpha*-*-*bsd*)
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for explicit relocation support" >&5
|
||||
$as_echo_n "checking assembler for explicit relocation support... " >&6; }
|
||||
if test "${gcc_cv_as_alpha_explicit_relocs+set}" = set; then :
|
||||
|
@ -3183,11 +3183,6 @@ case "$target" in
|
||||
# with TLS support are in use, native TLS cannot work.
|
||||
set_have_as_tls=no
|
||||
;;
|
||||
*-*-osf*)
|
||||
# Tru64 UNIX loader and libc.so lack TLS support, so even if gas and
|
||||
# gld with TLS support are in use, native TLS cannot work.
|
||||
set_have_as_tls=no
|
||||
;;
|
||||
# TLS was introduced in the Solaris 9 FCS release and backported to
|
||||
# Solaris 8 patches. Support for GNU-style TLS on x86 was only
|
||||
# introduced in Solaris 9 4/04, replacing the earlier Sun style that Sun
|
||||
@ -3302,12 +3297,6 @@ elif test x$gcc_cv_ld != x; then
|
||||
gcc_cv_ld_static_dynamic=yes
|
||||
else
|
||||
case "$target" in
|
||||
# Tru64 UNIX support -noso/-so_archive instead of -Bstatic/-Bdynamic.
|
||||
alpha*-dec-osf*)
|
||||
gcc_cv_ld_static_dynamic=yes
|
||||
gcc_cv_ld_static_option="-noso"
|
||||
gcc_cv_ld_dynamic_option="-so_archive"
|
||||
;;
|
||||
# HP-UX ld uses -a flags to select between shared and archive.
|
||||
*-*-hpux*)
|
||||
if test x"$gnu_ld" = xno; then
|
||||
@ -3414,7 +3403,7 @@ AC_MSG_RESULT($gcc_cv_lto_plugin)
|
||||
|
||||
case "$target" in
|
||||
# All TARGET_ABI_OSF targets.
|
||||
alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
|
||||
alpha*-*-linux* | alpha*-*-*bsd*)
|
||||
gcc_GAS_CHECK_FEATURE([explicit relocation support],
|
||||
gcc_cv_as_alpha_explicit_relocs, [2,12,0],,
|
||||
[ .set nomacro
|
||||
|
@ -14141,10 +14141,9 @@ adding a call to the @code{.init} section.
|
||||
@node Symbol-Renaming Pragmas
|
||||
@subsection Symbol-Renaming Pragmas
|
||||
|
||||
For compatibility with the Solaris and Tru64 UNIX system headers, GCC
|
||||
For compatibility with the Solaris system headers, GCC
|
||||
supports two @code{#pragma} directives which change the name used in
|
||||
assembly for a given declaration. @code{#pragma extern_prefix} is only
|
||||
available on platforms whose system headers need it. To get this effect
|
||||
assembly for a given declaration. To get this effect
|
||||
on all platforms supported by GCC, use the asm labels extension (@pxref{Asm
|
||||
Labels}).
|
||||
|
||||
@ -14155,19 +14154,9 @@ Labels}).
|
||||
This pragma gives the C function @var{oldname} the assembly symbol
|
||||
@var{newname}. The preprocessor macro @code{__PRAGMA_REDEFINE_EXTNAME}
|
||||
will be defined if this pragma is available (currently on all platforms).
|
||||
|
||||
@item extern_prefix @var{string}
|
||||
@cindex pragma, extern_prefix
|
||||
|
||||
This pragma causes all subsequent external function and variable
|
||||
declarations to have @var{string} prepended to their assembly symbols.
|
||||
This effect may be terminated with another @code{extern_prefix} pragma
|
||||
whose argument is an empty string. The preprocessor macro
|
||||
@code{__PRAGMA_EXTERN_PREFIX} will be defined if this pragma is
|
||||
available (currently only on Tru64 UNIX)@.
|
||||
@end table
|
||||
|
||||
These pragmas and the asm labels extension interact in a complicated
|
||||
This pragma and the asm labels extension interact in a complicated
|
||||
manner. Here are some corner cases you may want to be aware of.
|
||||
|
||||
@enumerate
|
||||
@ -14186,17 +14175,6 @@ the name does not change.
|
||||
|
||||
@item The @var{oldname} used by @code{#pragma redefine_extname} is
|
||||
always the C-language name.
|
||||
|
||||
@item If @code{#pragma extern_prefix} is in effect, and a declaration
|
||||
occurs with an asm label attached, the prefix is silently ignored for
|
||||
that declaration.
|
||||
|
||||
@item If @code{#pragma extern_prefix} and @code{#pragma redefine_extname}
|
||||
apply to the same declaration, whichever triggered first wins, and a
|
||||
warning issues if they contradict each other. (We would like to have
|
||||
@code{#pragma redefine_extname} always win, for consistency with asm
|
||||
labels, but if @code{#pragma extern_prefix} triggers first we have no
|
||||
way of knowing that that happened.)
|
||||
@end enumerate
|
||||
|
||||
@node Structure-Packing Pragmas
|
||||
|
@ -2949,7 +2949,6 @@ The @uref{http://www.mingw.org/,,MinGW} project.
|
||||
Written Word} offers binaries for
|
||||
AIX 4.3.3, 5.1 and 5.2,
|
||||
IRIX 6.5,
|
||||
Tru64 UNIX 4.0D and 5.1,
|
||||
GNU/Linux (i386),
|
||||
HP-UX 10.20, 11.00, and 11.11, and
|
||||
Solaris/SPARC 2.5.1, 2.6, 7, 8, 9 and 10.
|
||||
@ -3160,54 +3159,10 @@ Systems using processors that implement the DEC Alpha architecture and
|
||||
are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP
|
||||
Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
|
||||
|
||||
Support for Tru64 UNIX V5.1 has been obsoleted in GCC 4.7, but can still
|
||||
be enabled by configuring with @option{--enable-obsolete}. Support will
|
||||
be removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and
|
||||
V5.0 has been removed. As of GCC 3.2, versions before
|
||||
@code{alpha*-dec-osf4} are no longer supported. (These are the versions
|
||||
which identify themselves as DEC OSF/1.)
|
||||
|
||||
On Tru64 UNIX, virtual memory exhausted bootstrap failures
|
||||
may be fixed by reconfiguring Kernel Virtual Memory and Swap parameters
|
||||
per the @command{/usr/sbin/sys_check} Tuning Suggestions,
|
||||
or applying the patch in
|
||||
@uref{http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html}. Depending on
|
||||
the OS version used, you need a data segment size between 512 MB and
|
||||
1 GB, so simply use @command{ulimit -Sd unlimited}.
|
||||
|
||||
As of GNU binutils 2.21, neither GNU @command{as} nor GNU @command{ld}
|
||||
are supported on Tru64 UNIX, so you must not configure GCC with
|
||||
@option{--with-gnu-as} or @option{--with-gnu-ld}.
|
||||
|
||||
Cross-compilers for the Tru64 UNIX target currently do not work because
|
||||
the auxiliary programs @command{mips-tdump} and @command{mips-tfile} can't
|
||||
be compiled on anything but Tru64 UNIX.
|
||||
|
||||
GCC writes a @samp{.verstamp} directive to the assembler output file
|
||||
unless it is built as a cross-compiler. It gets the version to use from
|
||||
the system header file @file{/usr/include/stamp.h}. If you install a
|
||||
new version of Tru64 UNIX, you should rebuild GCC to pick up the new version
|
||||
stamp.
|
||||
|
||||
GCC now supports both the native (ECOFF) debugging format used by DBX
|
||||
and GDB and an encapsulated STABS format for use only with GDB@. See the
|
||||
discussion of the @option{--with-stabs} option of @file{configure} above
|
||||
for more information on these formats and how to select them.
|
||||
@c FIXME: does this work at all? If so, perhaps make default.
|
||||
|
||||
There is a bug in DEC's assembler that produces incorrect line numbers
|
||||
for ECOFF format when the @samp{.align} directive is used. To work
|
||||
around this problem, GCC will not emit such alignment directives
|
||||
while writing ECOFF format debugging information even if optimization is
|
||||
being performed. Unfortunately, this has the very undesirable
|
||||
side-effect that code addresses when @option{-O} is specified are
|
||||
different depending on whether or not @option{-g} is also specified.
|
||||
|
||||
To avoid this behavior, specify @option{-gstabs+} and use GDB instead of
|
||||
DBX@. DEC is now aware of this problem with the assembler and hopes to
|
||||
provide a fix shortly.
|
||||
|
||||
@c FIXME: still applicable?
|
||||
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6,
|
||||
support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2,
|
||||
versions before @code{alpha*-dec-osf4} are no longer supported. (These
|
||||
are the versions which identify themselves as DEC OSF/1.)
|
||||
|
||||
@html
|
||||
<hr />
|
||||
|
@ -10758,10 +10758,6 @@ Define this macro if macros should be expanded in the
|
||||
arguments of @samp{#pragma pack}.
|
||||
@end defmac
|
||||
|
||||
@deftypevr {Target Hook} bool TARGET_HANDLE_PRAGMA_EXTERN_PREFIX
|
||||
True if @code{#pragma extern_prefix} is to be supported.
|
||||
@end deftypevr
|
||||
|
||||
@defmac TARGET_DEFAULT_PACK_STRUCT
|
||||
If your target requires a structure packing default other than 0 (meaning
|
||||
the machine default), define this macro to the necessary value (in bytes).
|
||||
|
@ -10638,8 +10638,6 @@ Define this macro if macros should be expanded in the
|
||||
arguments of @samp{#pragma pack}.
|
||||
@end defmac
|
||||
|
||||
@hook TARGET_HANDLE_PRAGMA_EXTERN_PREFIX
|
||||
|
||||
@defmac TARGET_DEFAULT_PACK_STRUCT
|
||||
If your target requires a structure packing default other than 0 (meaning
|
||||
the machine default), define this macro to the necessary value (in bytes).
|
||||
|
@ -1,5 +1,5 @@
|
||||
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
@c 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||
@c 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012
|
||||
@c Free Software Foundation, Inc.
|
||||
@c This is part of the GCC manual.
|
||||
@c For copying conditions, see the file gcc.texi.
|
||||
@ -20,7 +20,6 @@ where people's opinions differ as to what is best.
|
||||
|
||||
@menu
|
||||
* Actual Bugs:: Bugs we will fix later.
|
||||
* Cross-Compiler Problems:: Common problems of cross compiling with GCC.
|
||||
* Interoperation:: Problems using GCC with other compilers,
|
||||
and with certain linkers, assemblers and debuggers.
|
||||
* Incompatibilities:: GCC is incompatible with traditional C.
|
||||
@ -46,19 +45,6 @@ unmounted while @code{fixincludes} is running. This would seem to be a
|
||||
bug in the automounter. We don't know any good way to work around it.
|
||||
@end itemize
|
||||
|
||||
@node Cross-Compiler Problems
|
||||
@section Cross-Compiler Problems
|
||||
|
||||
You may run into problems with cross compilation on certain machines,
|
||||
for several reasons.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
At present, the program @file{mips-tfile} which adds debug
|
||||
support to object files on Tru64 UNIX systems does not work in a cross
|
||||
compile environment.
|
||||
@end itemize
|
||||
|
||||
@node Interoperation
|
||||
@section Interoperation
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* Implements exception handling.
|
||||
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
Free Software Foundation, Inc.
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||
2011, 2012 Free Software Foundation, Inc.
|
||||
Contributed by Mike Stump <mrs@cygnus.com>.
|
||||
|
||||
This file is part of GCC.
|
||||
@ -1419,7 +1419,7 @@ finish_eh_generation (void)
|
||||
break_superblocks ();
|
||||
|
||||
if (targetm_common.except_unwind_info (&global_options) == UI_SJLJ
|
||||
/* Kludge for Alpha/Tru64 (see alpha_gp_save_rtx). */
|
||||
/* Kludge for Alpha (see alpha_gp_save_rtx). */
|
||||
|| single_succ_edge (ENTRY_BLOCK_PTR)->insns.r)
|
||||
commit_edge_insertions ();
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
/* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2009 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2009, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
@ -59,10 +60,6 @@ typedef __builtin_va_list __gnuc_va_list;
|
||||
but must not use that name. It should use the name __gnuc_va_list,
|
||||
which is safe because it is reserved for the implementation. */
|
||||
|
||||
#ifdef _HIDDEN_VA_LIST /* On OSF1, this means varargs.h is "half-loaded". */
|
||||
#undef _VA_LIST
|
||||
#endif
|
||||
|
||||
#ifdef _BSD_VA_LIST
|
||||
#undef _BSD_VA_LIST
|
||||
#endif
|
||||
|
1525
gcc/mips-tdump.c
1525
gcc/mips-tdump.c
File diff suppressed because it is too large
Load Diff
5419
gcc/mips-tfile.c
5419
gcc/mips-tfile.c
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,7 @@
|
||||
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* EXCLUDES (mips-tdump.c, mips-tfile.c): Remove.
|
||||
|
||||
2012-03-12 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sv.po: Update.
|
||||
|
@ -1,4 +1,5 @@
|
||||
# Copyright (C) 2001, 2004, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001, 2004, 2009, 2010, 2011, 2012
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GCC.
|
||||
#
|
||||
@ -53,8 +54,3 @@ genrecog.c
|
||||
gensupport.c
|
||||
gensupport.h
|
||||
read-md.c
|
||||
|
||||
# These files are not yet internationalized, because they contain
|
||||
# many strings that require a lot of analysis, and are little-used.
|
||||
mips-tdump.c
|
||||
mips-tfile.c
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* Get common system includes and various definitions and declarations based
|
||||
on autoconf macros.
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
|
||||
2009, 2010, 2011
|
||||
2009, 2010, 2011, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
@ -890,7 +890,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
|
||||
TARGET_PROMOTE_FUNCTION_ARGS TARGET_PROMOTE_FUNCTION_RETURN \
|
||||
LANG_HOOKS_MISSING_ARGUMENT LANG_HOOKS_HASH_TYPES \
|
||||
TARGET_HANDLE_OFAST TARGET_OPTION_OPTIMIZATION \
|
||||
TARGET_IRA_COVER_CLASSES TARGET_HELP
|
||||
TARGET_IRA_COVER_CLASSES TARGET_HELP \
|
||||
TARGET_HANDLE_PRAGMA_EXTERN_PREFIX
|
||||
|
||||
/* Arrays that were deleted in favor of a functional interface. */
|
||||
#pragma GCC poison built_in_decls implicit_built_in_decls
|
||||
|
@ -2721,11 +2721,6 @@ DEFHOOKPOD
|
||||
"",
|
||||
bool, false)
|
||||
|
||||
DEFHOOKPOD
|
||||
(handle_pragma_extern_prefix,
|
||||
"True if @code{#pragma extern_prefix} is to be supported.",
|
||||
bool, 0)
|
||||
|
||||
/* True if the target is allowed to reorder memory accesses unless
|
||||
synchronization is explicitly requested. */
|
||||
DEFHOOKPOD
|
||||
|
@ -1,3 +1,51 @@
|
||||
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* g++.dg/abi/rtti3.C: Remove alpha*-dec-osf* handling.
|
||||
* g++.dg/abi/thunk4.C: Likewise.
|
||||
* g++.dg/cdce3.C: Don't skip on*-dec-osf5*.
|
||||
Adapt line numbers.
|
||||
* g++.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
|
||||
handling.
|
||||
* g++.dg/cpp0x/constexpr-rom.C: Likewise.
|
||||
* g++.dg/eh/spbp.C: Likewise.
|
||||
* g++.dg/ext/label13.C: Likewise.
|
||||
* g++.dg/guality/guality.exp: Likewise.
|
||||
* g++.dg/other/anon5.C: Likewise.
|
||||
* g++.dg/other/pragma-ep-1.C: Remove.
|
||||
* g++.dg/warn/miss-format-1.C: Remove alpha*-dec-osf* handling.
|
||||
* g++.dg/warn/pr31246.C: Likewise.
|
||||
* g++.dg/warn/weak1.C: Likewise.
|
||||
* g++.old-deja/g++.eh/badalloc1.C: Likewise.
|
||||
* g++.old-deja/g++.ext/attrib5.C: Likewise.
|
||||
* gcc.c-torture/compile/limits-declparen.c: Likewise.
|
||||
* gcc.c-torture/compile/limits-pointer.c: Likewise.
|
||||
* gcc.c-torture/execute/20001229-1.c: Remove __osf__ handling.
|
||||
* gcc.dg/attr-weakref-1.c: Remove alpha*-dec-osf* handling.
|
||||
* gcc.dg/c99-stdint-6.c: Remove alpha*-dec-osf5* handling.
|
||||
* gcc.dg/c99-tgmath-1.c: Likewise.
|
||||
* gcc.dg/c99-tgmath-2.c: Likewise.
|
||||
* gcc.dg/c99-tgmath-3.c: Likewise.
|
||||
* gcc.dg/c99-tgmath-4.c: Likewise.
|
||||
* gcc.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
|
||||
handling.
|
||||
* gcc.dg/debug/pr49032.c: Likewise.
|
||||
* gcc.dg/guality/guality.exp: Likewise.
|
||||
* gcc.dg/intmax_t-1.c: Likewise.
|
||||
* gcc.dg/pr48616.c: Likewise.
|
||||
* gcc.dg/pragma-ep-1.c: Remove.
|
||||
* gcc.dg/pragma-ep-2.c: Remove.
|
||||
* gcc.dg/pragma-ep-3.c: Remove.
|
||||
* gcc.dg/torture/pr47917.c: Remove alpha*-dec-osf5* handling.
|
||||
* gcc.dg/tree-ssa/pr42585.c: Remove alpha*-dec-osf* handling.
|
||||
* gcc.misc-tests/gcov-14.c: Likewise.
|
||||
* gfortran.dg/guality/guality.exp: Likewise.
|
||||
* lib/target-supports.exp (check_weak_available): Likewise.
|
||||
(add_options_for_tls): Likewise.
|
||||
(check_ascii_locale_available): Likewise.
|
||||
* obj-c++.dg/dwarf-2.mm: Likewise.
|
||||
* objc.dg/dwarf-1.m: Likewise.
|
||||
* objc.dg/dwarf-2.m: Likewise.
|
||||
|
||||
2012-03-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/51721
|
||||
|
@ -3,12 +3,10 @@
|
||||
|
||||
// { dg-require-weak "" }
|
||||
// { dg-skip-if "Linkonce not weak" { *-*-mingw* *-*-cygwin } { "*" } { "" } }
|
||||
// { dg-final { scan-assembler ".weak\[ \t\]_?_ZTSPP1A" { target { ! { *-*-darwin* alpha*-dec-osf* } } } } }
|
||||
// { dg-final { scan-assembler-not ".weak\[ \t\]_?_ZTIPP1A" { target { ! { *-*-darwin* alpha*-dec-osf* } } } } }
|
||||
// { dg-final { scan-assembler ".weak\[ \t\]_?_ZTSPP1A" { target { ! { *-*-darwin* } } } } }
|
||||
// { dg-final { scan-assembler-not ".weak\[ \t\]_?_ZTIPP1A" { target { ! { *-*-darwin* } } } } }
|
||||
// { dg-final { scan-assembler ".weak_definition\[ \t\]_?_ZTSPP1A" { target { *-*-darwin* } } } }
|
||||
// { dg-final { scan-assembler-not ".weak_definition\[ \t\]_?_ZTIPP1A" { target { *-*-darwin* } } } }
|
||||
// { dg-final { scan-assembler ".weakext\[ \t\]_?_ZTSPP1A" { target { alpha*-dec-osf* } } } }
|
||||
// { dg-final { scan-assembler-not ".weakext\[ \t\]_?_ZTIPP1A" { target { alpha*-dec-osf* } } } }
|
||||
|
||||
struct A;
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
// { dg-require-weak "" }
|
||||
// { dg-skip-if "Linkonce not weak" { *-*-mingw* *-*-cygwin } { "*" } { "" } }
|
||||
// { dg-final { scan-assembler ".weak\[ \t\]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* alpha*-dec-osf* } } } } }
|
||||
// { dg-final { scan-assembler ".weak\[ \t\]_?_ZThn._N7Derived3FooEv" { target { ! { *-*-darwin* } } } } }
|
||||
// { dg-final { scan-assembler ".weak_definition\[ \t\]_?_ZThn._N7Derived3FooEv" { target { *-*-darwin* } } } }
|
||||
// { dg-final { scan-assembler ".weakext\[ \t\]_?_ZThn._N7Derived3FooEv" { target { alpha*-dec-osf* } } } }
|
||||
|
||||
struct Base
|
||||
{
|
||||
|
@ -1,12 +1,12 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target c99_runtime } */
|
||||
/* { dg-skip-if "exp2* missing despite C99 runtime" { alpha*-dec-osf5* } } */
|
||||
/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" } */
|
||||
/* { dg-additional-options "-DLARGE_LONG_DOUBLE" { target large_long_double } } */
|
||||
/* { dg-additional-options "-DGNU_EXTENSION" { target pow10 } } */
|
||||
/* { dg-add-options ieee } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:92: note: function call is shrink-wrapped into error conditions\." "cdce" { target pow10 } } } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:93: note: function call is shrink-wrapped into error conditions\." "cdce" { target pow10 } } } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:94: note: function call is shrink-wrapped into error conditions\." "cdce" { target pow10 } } } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:95: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:96: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:97: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:98: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
|
||||
@ -20,7 +20,6 @@
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:106: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:107: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:108: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
|
||||
/* { dg-final { scan-tree-dump "cdce3.C:109: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
|
||||
/* { dg-final { cleanup-tree-dump "cdce" } } */
|
||||
|
||||
#include <stdlib.h>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Structure layout test generator.
|
||||
Copyright (C) 2004, 2005, 2007, 2008, 2009, 2011
|
||||
Copyright (C) 2004, 2005, 2007, 2008, 2009, 2011, 2012
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Jakub Jelinek <jakub@redhat.com>.
|
||||
|
||||
@ -46,7 +46,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
const char *dg_options[] = {
|
||||
"/* { dg-options \"%s-I%s\" } */\n",
|
||||
"/* { dg-options \"%s-I%s -mno-mmx -Wno-abi\" { target i?86-*-* x86_64-*-* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -fno-common\" { target alpha*-dec-osf* hppa*-*-hpux* powerpc*-*-darwin* *-*-mingw32* *-*-cygwin* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -fno-common\" { target hppa*-*-hpux* powerpc*-*-darwin* *-*-mingw32* *-*-cygwin* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -mno-mmx -fno-common -Wno-abi\" { target i?86-*-darwin* x86_64-*-darwin* i?86-*-mingw32* x86_64-*-mingw32* i?86-*-cygwin* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -mno-base-addresses\" { target mmix-*-* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -mlongcalls -mtext-section-literals\" { target xtensa*-*-* } } */\n"
|
||||
|
@ -1,6 +1,6 @@
|
||||
// PR c++/49673: check that test_data goes into .rodata
|
||||
// { dg-options -std=c++0x }
|
||||
// { dg-additional-options -G0 { target { { alpha*-*-* frv*-*-* ia64-*-* lm32*-*-* m32r*-*-* microblaze*-*-* mips*-*-* powerpc*-*-* rs6000*-*-* score*-*-* } && { ! { *-*-darwin* *-*-aix* alpha*-*-osf* alpha*-*-*vms* } } } } }
|
||||
// { dg-additional-options -G0 { target { { alpha*-*-* frv*-*-* ia64-*-* lm32*-*-* m32r*-*-* microblaze*-*-* mips*-*-* powerpc*-*-* rs6000*-*-* score*-*-* } && { ! { *-*-darwin* *-*-aix* alpha*-*-*vms* } } } } }
|
||||
// { dg-final { scan-assembler "\\.rdata" { target mips*-*-* } } }
|
||||
// { dg-final { scan-assembler "rodata" { target { { *-*-linux-gnu || *-*-elf } && { ! mips*-*-* } } } } }
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-gdwarf-2" } */
|
||||
/* { dg-skip-if "No Dwarf" { { *-*-aix* alpha*-dec-osf* hppa*-*-hpux* } && { ! hppa*64*-*-* } } { "*" } { "" } } */
|
||||
/* { dg-skip-if "No Dwarf" { { *-*-aix* hppa*-*-hpux* } && { ! hppa*64*-*-* } } { "*" } { "" } } */
|
||||
|
||||
/* This was a bug on x86-darwin, where the register numbering for SP
|
||||
and BP was swapped (it's easy to do because on that port it's
|
||||
|
@ -8,7 +8,7 @@ struct C
|
||||
C();
|
||||
};
|
||||
|
||||
C::C() // { dg-bogus "can never be copied" "" { xfail { { *-apple-darwin* alpha*-dec-osf* } || { hppa*-*-hpux* && { ! lp64 } } } } }
|
||||
C::C() // { dg-bogus "can never be copied" "" { xfail { { *-apple-darwin* } || { hppa*-*-hpux* && { ! lp64 } } } } }
|
||||
{
|
||||
static void *labelref = &&label;
|
||||
goto *labelref;
|
||||
|
@ -4,8 +4,7 @@ load_lib g++-dg.exp
|
||||
load_lib gcc-gdb-test.exp
|
||||
|
||||
# Disable on darwin until radr://7264615 is resolved.
|
||||
# Disable on Tru64 UNIX (PR testsuite/48251).
|
||||
if { [istarget *-*-darwin*] || [istarget alpha*-dec-osf*] } {
|
||||
if { [istarget *-*-darwin*] } {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// PR c++/34094
|
||||
// { dg-do link { target { ! { *-*-darwin* *-*-hpux* *-*-solaris2.* alpha*-dec-osf* mips-sgi-irix* } } } }
|
||||
// { dg-do link { target { ! { *-*-darwin* *-*-hpux* *-*-solaris2.* mips-sgi-irix* } } } }
|
||||
// { dg-options "-g" }
|
||||
|
||||
namespace {
|
||||
|
@ -1,27 +0,0 @@
|
||||
/* { dg-do compile { target *-*-osf5* } } */
|
||||
/* { dg-final { scan-assembler "xyzzy_one" } } */
|
||||
/* { dg-final { scan-assembler "xyzzy_two" } } */
|
||||
/* { dg-final { scan-assembler "xyzzz_three" } } */
|
||||
/* { dg-final { scan-assembler "four" } } */
|
||||
/* { dg-final { scan-assembler-not "_four" } } */
|
||||
|
||||
#ifndef __PRAGMA_EXTERN_PREFIX
|
||||
#error
|
||||
#endif
|
||||
|
||||
#pragma extern_prefix "xyzzy_"
|
||||
|
||||
extern "C" int one(void);
|
||||
extern "C" int two(void);
|
||||
|
||||
#pragma extern_prefix "xyzzz_"
|
||||
|
||||
extern "C" int three(void);
|
||||
|
||||
#pragma extern_prefix ""
|
||||
|
||||
extern "C" int four(void);
|
||||
|
||||
int (*p[])(void) = {
|
||||
one, two, three, four
|
||||
};
|
@ -4,7 +4,7 @@
|
||||
/* { dg-options "-Wmissing-format-attribute" } */
|
||||
/* { dg-options "-Wmissing-format-attribute -Wno-abi" { target arm_eabi } } */
|
||||
/* VxWorks does not provide vscanf, either in kernel or RTP mode. */
|
||||
/* { dg-error "not declared" "" { target { *-*-solaris2.8 *-*-vxworks* alpha*-dec-osf* } } 26 } */
|
||||
/* { dg-error "not declared" "" { target { *-*-solaris2.8 *-*-vxworks* } } 26 } */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
@ -23,7 +23,7 @@ bar (const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start (ap, fmt);
|
||||
vscanf (fmt, ap); /* { dg-warning "candidate" "scanf attribute warning" { xfail *-*-solaris2.8 *-*-vxworks* alpha*-dec-osf* } } */
|
||||
vscanf (fmt, ap); /* { dg-warning "candidate" "scanf attribute warning" { xfail *-*-solaris2.8 *-*-vxworks* } } */
|
||||
va_end (ap);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
// PR 31246
|
||||
// { dg-do compile }
|
||||
// { dg-options "-Wunreachable-code -D_GLIBCXX_DEBUG" }
|
||||
// { dg-xfail-if "lack of weak symbols" { alpha*-dec-osf* } }
|
||||
#include <vector>
|
||||
|
||||
int main()
|
||||
|
@ -1,8 +1,7 @@
|
||||
// { dg-do run }
|
||||
// { dg-require-weak "" }
|
||||
// The PA HP-UX and Tru64 UNIX dynamic loaders don't support unsatisfied
|
||||
// weak symbols.
|
||||
// { dg-skip-if "No unsat" { alpha*-dec-osf* hppa*-*-hpux* } { "*" } { "" } }
|
||||
// The PA HP-UX dynamic loader doesn't support unsatisfied weak symbols.
|
||||
// { dg-skip-if "No unsat" { hppa*-*-hpux* } { "*" } { "" } }
|
||||
// The darwin loader does, but they do need to exist at link time.
|
||||
// { dg-skip-if "No link unsat" { *-*-darwin* } { "*" } { "" } }
|
||||
// For kernel modules and static RTPs, the loader treats undefined weak
|
||||
|
@ -3,7 +3,7 @@
|
||||
// itself call malloc(), and will fail if there is no more
|
||||
// memory available.
|
||||
// { dg-do run { xfail { { xstormy16-*-* *-*-darwin[3-7]* } || vxworks_rtp } } }
|
||||
// Copyright (C) 2000, 2002, 2003, 2010 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2000, 2002, 2003, 2010, 2012 Free Software Foundation, Inc.
|
||||
// Contributed by Nathan Sidwell 6 June 2000 <nathan@codesourcery.com>
|
||||
|
||||
// Check we can throw a bad_alloc exception when malloc dies.
|
||||
@ -18,9 +18,9 @@ extern "C" void *memcpy(void *, const void *, size_t);
|
||||
#ifdef STACK_SIZE
|
||||
const int arena_size = 256;
|
||||
#else
|
||||
#if defined(__FreeBSD__) || defined(__sun__) || defined(__hpux__) || defined(__osf__)
|
||||
// FreeBSD, Solaris, HP-UX and Tru64 UNIX with threads require even more
|
||||
// space at initialization time. FreeBSD 5 now requires over 131072 bytes.
|
||||
#if defined(__FreeBSD__) || defined(__sun__) || defined(__hpux__)
|
||||
// FreeBSD, Solaris and HP-UX require even more space at initialization time.
|
||||
// FreeBSD 5 now requires over 131072 bytes.
|
||||
const int arena_size = 262144;
|
||||
#else
|
||||
const int arena_size = 32768;
|
||||
|
@ -1,4 +1,4 @@
|
||||
// { dg-do run { xfail alpha*-dec-osf* i?86-pc-cygwin } }
|
||||
// { dg-do run { xfail i?86-pc-cygwin } }
|
||||
// Test that attributes weak and alias coexist.
|
||||
// { dg-require-weak "" }
|
||||
// { dg-require-alias "" }
|
||||
|
@ -1,4 +1,3 @@
|
||||
/* { dg-xfail-if "" { alpha*-dec-osf5* } { "-g" } { "" } } */
|
||||
#define PTR1 (* (* (* (* (* (* (* (* (* (*
|
||||
#define PTR2 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1
|
||||
#define PTR3 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2
|
||||
|
@ -1,4 +1,3 @@
|
||||
/* { dg-xfail-if "" { alpha*-dec-osf5* } { "-g" } { "" } } */
|
||||
#define PTR1 * * * * * * * * * *
|
||||
#define PTR2 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1
|
||||
#define PTR3 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2
|
||||
|
@ -7,8 +7,7 @@
|
||||
So: If we know how, ask the kernel to deliver SIGBUS instead so
|
||||
that the test case visibly fails. */
|
||||
|
||||
#if defined(__alpha__) && (defined(__linux__) || defined(__osf__))
|
||||
#ifdef __linux__
|
||||
#if defined(__alpha__) && defined(__linux__)
|
||||
#include <asm/sysinfo.h>
|
||||
#include <asm/unistd.h>
|
||||
|
||||
@ -19,11 +18,6 @@ setsysinfo(unsigned long op, void *buffer, unsigned long size,
|
||||
syscall(__NR_osf_setsysinfo, op, buffer, size, start, arg, flag);
|
||||
}
|
||||
|
||||
#else
|
||||
#include <sys/sysinfo.h>
|
||||
#include <sys/proc.h>
|
||||
#endif
|
||||
|
||||
static void __attribute__((constructor))
|
||||
trap_unaligned(void)
|
||||
{
|
||||
|
@ -2,10 +2,9 @@
|
||||
// { dg-require-weak "" }
|
||||
// On darwin, we use attr-weakref-1-darwin.c.
|
||||
// This test requires support for undefined weak symbols. This support
|
||||
// is not available on alpha*-dec-osf* and hppa*-*-hpux*. The test is
|
||||
// skipped rather than xfailed to suppress the warning that would otherwise
|
||||
// arise.
|
||||
// { dg-skip-if "" { "alpha*-dec-osf*" "*-*-darwin*" "hppa*-*-hpux*" } "*" { "" } }
|
||||
// is not available on hppa*-*-hpux*. The test is skipped rather than
|
||||
// xfailed to suppress the warning that would otherwise arise.
|
||||
// { dg-skip-if "" { "*-*-darwin*" "hppa*-*-hpux*" } "*" { "" } }
|
||||
// For kernel modules and static RTPs, the loader treats undefined weak
|
||||
// symbols in the same way as undefined strong symbols. The test
|
||||
// therefore fails to load, so skip it.
|
||||
|
@ -3,7 +3,6 @@
|
||||
/* { dg-do compile { target inttypes_types } } */
|
||||
/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
|
||||
/* { dg-options "-std=gnu99 -pedantic-errors -DNO_FAST_TYPES" { target *-*-solaris2.[89]* } } */
|
||||
/* { dg-options "-std=gnu99 -pedantic-errors -DNO_LEAST_TYPES -DNO_FAST_TYPES -DNO_MAX_TYPES" { target alpha*-dec-osf5* } } */
|
||||
|
||||
#include <inttypes.h>
|
||||
#ifndef SIGNAL_SUPPRESS
|
||||
|
@ -3,7 +3,6 @@
|
||||
/* { dg-do preprocess { target c99_runtime } } */
|
||||
/* { dg-options "-std=iso9899:1999" } */
|
||||
/* { dg-add-options c99_runtime } */
|
||||
/* { dg-skip-if "<complex.h> missing" { alpha*-dec-osf5* } } */
|
||||
|
||||
/* Test that tgmath defines the macros it's supposed to. */
|
||||
#include <tgmath.h>
|
||||
|
@ -3,7 +3,6 @@
|
||||
/* { dg-do compile { target c99_runtime } } */
|
||||
/* { dg-options "-std=iso9899:1999" } */
|
||||
/* { dg-add-options c99_runtime } */
|
||||
/* { dg-skip-if "<complex.h> missing" { alpha*-dec-osf5* } } */
|
||||
|
||||
/* Test that invoking type-generic sin on a float invokes sinf. */
|
||||
#include <tgmath.h>
|
||||
|
@ -3,7 +3,6 @@
|
||||
/* { dg-do compile { target c99_runtime } } */
|
||||
/* { dg-options "-std=iso9899:1999" } */
|
||||
/* { dg-add-options c99_runtime } */
|
||||
/* { dg-skip-if "<complex.h> missing" { alpha*-dec-osf5* } } */
|
||||
|
||||
/* Test that invoking type-generic exp on a complex invokes cexp. */
|
||||
#include <tgmath.h>
|
||||
|
@ -3,7 +3,6 @@
|
||||
/* { dg-do compile { target c99_runtime } } */
|
||||
/* { dg-options "-std=iso9899:1999" } */
|
||||
/* { dg-add-options c99_runtime } */
|
||||
/* { dg-skip-if "<complex.h> missing" { alpha*-dec-osf5* } } */
|
||||
|
||||
/* Test that invoking type-generic pow on complex float invokes cpowf. */
|
||||
#include <tgmath.h>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Structure layout test generator.
|
||||
Copyright (C) 2004, 2005, 2007, 2008, 2009, 2011
|
||||
Copyright (C) 2004, 2005, 2007, 2008, 2009, 2011, 2012
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Jakub Jelinek <jakub@redhat.com>.
|
||||
|
||||
@ -47,7 +47,7 @@ const char *dg_options[] = {
|
||||
"/* { dg-options \"%s-I%s\" } */\n",
|
||||
"/* { dg-options \"%s-I%s -Wno-abi\" } */\n",
|
||||
"/* { dg-options \"%s-I%s -mno-mmx -Wno-abi\" { target i?86-*-* x86_64-*-* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -fno-common\" { target alpha*-dec-osf* hppa*-*-hpux* powerpc*-*-darwin* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -fno-common\" { target hppa*-*-hpux* powerpc*-*-darwin* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -mno-mmx -fno-common -Wno-abi\" { target i?86-*-darwin* x86_64-*-darwin* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -mno-base-addresses\" { target mmix-*-* } } */\n",
|
||||
"/* { dg-options \"%s-I%s -mlongcalls -mtext-section-literals\" { target xtensa*-*-* } } */\n"
|
||||
|
@ -1,7 +1,5 @@
|
||||
/* PR debug/49032 */
|
||||
/* { dg-do link } */
|
||||
/* Prune mips-tfile warning on alpha*-dec-osf* with -gcoff* -O*. */
|
||||
/* { dg-prune-output "warning, s not found in .*symbol tables" } */
|
||||
|
||||
static int s = 42;
|
||||
|
||||
|
@ -4,8 +4,7 @@ load_lib gcc-dg.exp
|
||||
load_lib gcc-gdb-test.exp
|
||||
|
||||
# Disable on darwin until radr://7264615 is resolved.
|
||||
# Disable on Tru64 UNIX (PR testsuite/48251).
|
||||
if { [istarget *-*-darwin*] || [istarget alpha*-dec-osf*] } {
|
||||
if { [istarget *-*-darwin*] } {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wall" } */
|
||||
/* { dg-error "" "" { target { { *arm*-*-*elf* xtensa*-*-elf* } || vxworks_kernel } } 0 } */
|
||||
/* { dg-skip-if "No *intmax_t in <inttypes.h>" { alpha*-dec-osf* } } */
|
||||
|
||||
/* Compile with -Wall to get a warning if built-in and system intmax_t don't
|
||||
match. */
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* PR tree-optimization/48616 */
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -ftree-vectorize" } */
|
||||
/* { dg-additional-options "-fno-common" { target alpha*-dec-osf* hppa*-*-hpux* } } */
|
||||
/* { dg-additional-options "-fno-common" { target hppa*-*-hpux* } } */
|
||||
|
||||
extern void abort (void);
|
||||
int a[4] __attribute__((aligned (32)));
|
||||
|
@ -1,27 +0,0 @@
|
||||
/* { dg-do compile { target *-*-osf5* } } */
|
||||
/* { dg-final { scan-assembler "xyzzy_one" } } */
|
||||
/* { dg-final { scan-assembler "xyzzy_two" } } */
|
||||
/* { dg-final { scan-assembler "xyzzz_three" } } */
|
||||
/* { dg-final { scan-assembler "four" } } */
|
||||
/* { dg-final { scan-assembler-not "_four" } } */
|
||||
|
||||
#ifndef __PRAGMA_EXTERN_PREFIX
|
||||
#error
|
||||
#endif
|
||||
|
||||
#pragma extern_prefix "xyzzy_"
|
||||
|
||||
extern int one(void);
|
||||
extern int two(void);
|
||||
|
||||
#pragma extern_prefix "xyzzz_"
|
||||
|
||||
extern int three(void);
|
||||
|
||||
#pragma extern_prefix ""
|
||||
|
||||
extern int four(void);
|
||||
|
||||
int (*p[]) (void) = {
|
||||
one, two, three, four
|
||||
};
|
@ -1,7 +0,0 @@
|
||||
/* { dg-do compile { target *-*-osf5* } } */
|
||||
|
||||
#pragma extern_prefix /* { dg-warning "malformed" } */
|
||||
#pragma extern_prefix foo /* { dg-warning "malformed" } */
|
||||
#pragma extern_prefix "foo" 1 /* { dg-warning "junk" } */
|
||||
|
||||
int bar; /* silence `ISO C forbids an empty translation unit' warning */
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user