This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Port libvtv to Solaris
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: Jeff Law <law at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org, Caroline Tice <cmtice at google dot com>, Jakub Jelinek <jakub at redhat dot com>
- Date: Wed, 25 Nov 2015 11:08:10 +0100
- Subject: Re: Port libvtv to Solaris
- Authentication-results: sourceware.org; auth=none
- References: <ydd1tboep2n dot fsf at lokon dot CeBiTec dot Uni-Bielefeld dot DE> <ydd610rd7b3 dot fsf at lokon dot CeBiTec dot Uni-Bielefeld dot DE> <5654EF91 dot 3020607 at redhat dot com>
Jeff Law <law@redhat.com> writes:
>> 2015-08-20 Rainer Orth<ro@CeBiTec.Uni-Bielefeld.DE>
>>
>> libstdc++-v3:
>> * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY) <solaris2*>: Use
>> -Wl,-R in VTV_CXXLINKFLAGS.
>> * configure: Regenerate.
>>
>> * testsuite/18_support/bad_exception/23591_thread-1.c: Use
>> -fvtable-verify=none on Solaris 12+.
>>
>> libgcc:
>> * Makefile.in (VTV_CFLAGS): New variable.
>> (vtv_start$(objext), vtv_end$(objext), vtv_end$(objext))
>> (vtv_start_preinit$(objext), vtv_end_preinit$(objext)): Use it.
>> * config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file.
>> Add vtv_start.o, vtv_end.o, vtv_start_preinit.o, vtv_end_preinit.o
>> to extra_parts if $enable_vtable_verify = yes.
>>
>> libvtv:
>> * configure.tgt (*-*-solaris2.[1-9]*): Declare supported.
>> * configure.ac: Call AC_USE_SYSTEM_EXTENSIONS.
>> <*-*-solaris2*>: Check for init priority support.
>> Check for getexecname, __fortify_fail, _obstack_begin.
>> (VTV_NO_OBSTACK): New conditional.
>> * configure: Regenerate.
>> * Makefile.am [VTV_NO_OBSTACK] (obstack.c): Use new condition.
>> * Makefile.in: Regenerate.
>>
>> * vtv_rts.cc [HAVE_GETEXECNAME] (program_invocation_name): New
>> variable.
>> (read_section_offset_and_length) [HAVE_GETEXECNAME]: Set it.
>> (dl_iterate_phdr_callback) [HAVE_GETEXECNAME]: Set it.
>>
>> (__fortify_fail): Wrap in HAVE___FORTIFY_FAIL
>> [!HAVE___FORTIFY_FAIL]: Provide non-Cygwin implementation.
>>
>> (read_section_offset_and_length): Assert sh_size >= VTV_PAGE_SIZE.
>> (iterate_modules): Fix typo.
>> Use VTV_PAGE_SIZE.
>> (dl_iterate_phdr_callback): Fix typo.
>> Use VTV_PAGE_SIZE.
>> (__VLTChangePermission): Fix typos.
>>
>> include:
>> * vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ &&
>> __sparc__]: Define.
>>
>> gcc:
>> * config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
>> (STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
>> (STARTFILE_SPEC): Use %(startfile_vtv).
>> (ENDFILE_SPEC): Use %(endfile_vtv).
>> (SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
>> ENDFILE_VTV_SPEC.
>>
>> * gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
> The non-Solaris and non-libvtv bits are OK as well. I think that covers
> everything since you own the Solaris stuff and Caroline approved the libvtv
> stuff. Right?
Yes indeed. Thanks for all your totally amazing review work.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University