+2013-01-04 Joel Brobecker <brobecker@adacore.com brobecker>
+
+ * gnat_ugn.texi: Document procedure to codesign GDB on Darwin.
+ Update doc on gnattest --separates switch.
+
+2013-01-04 Thomas Quinot <quinot@adacore.com>
+
+ * s-chepoo.ads: Minor reformatting.
+
+2013-01-04 Arnaud Charlet <charlet@adacore.com>
+
+ * usage.adb: Remove mention of -gnatN in usage.
+
2013-01-04 Robert Dewar <dewar@adacore.com>
* exp_prag.adb, gnatcmd.adb, exp_util.adb, table.adb, sem_prag.adb,
* Compatibility and Porting Guide::
@ifset unw
* Microsoft Windows Topics::
+* Mac OS Topics::
@end ifset
* GNU Free Documentation License::
* Index::
* Debugging a DLL::
* Setting Stack Size from gnatlink::
* Setting Heap Size from gnatlink::
+
+Mac OS Topics
+
+* Codesigning the Debugger::
@end ifset
* Index::
@item
@ref{Microsoft Windows Topics}, presents information relevant to the
Microsoft Windows platform.
+
+@item
+@ref{Mac OS Topics}, presents information relevant to Apple's OS X
+platform.
@end ifset
@end itemize
@item --separates
@cindex @option{--separates} (@command{gnattest})
-Bodies of all test routines are generated as separates. This option is
-temporarily provided for compatibility to support the old way of generating test
-skeletons. Its usage is not recommended because at some point the option will be
-abandoned together with this way of generating test packages.
+Bodies of all test routines are generated as separates. Note that this mode is
+kept for compatibility reasons only and it is not advised to use it due to
+possible problems with hash in names of test skeletons when using an
+inconsistent casing. Separate test skeletons can be incorporated to monolith
+test package with improved hash being used by using @option{--transition}
+switch.
@item --transition
@end itemize
+@node Mac OS Topics
+@appendix Mac OS Topics
+@cindex OS X
+
+@noindent
+This chapter describes topics that are specific to Apple's OS X
+platform.
+
+@menu
+* Codesigning the Debugger::
+@end menu
+
+@node Codesigning the Debugger
+@section Codesigning the Debugger
+
+@noindent
+The Darwin Kernel requires the debugger to have special permissions
+before it is allowed to control other processes. These permissions
+are granted by codesigning the GDB executable. Without these
+permissions, the debugger will report error messages such as:
+
+@smallexample
+Starting program: /x/y/foo
+Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5).
+ (please check gdb is codesigned - see taskgated(8))
+@end smallexample
+
+Codesigning requires a certificate. The following procedure explains
+how to create one:
+
+@itemize @bullet
+@item Start the Keychain Access application (in
+/Applications/Utilities/Keychain Access.app)
+
+@item Select the Keychain Access -> Certificate Assistant ->
+Create a Certificate... menu
+
+@item Then:
+
+@itemize @bullet
+@item Choose a name for the new certificate (this procedure will use
+"gdb-cert" as an example)
+
+@item Set "Identity Type" to "Self Signed Root"
+
+@item Set "Certificate Type" to "Code Signing"
+
+@item Activate the "Let me override defaults" option
+
+@end itemize
+
+@item Click several times on "Continue" until the "Specify a Location
+For The Certificate" screen appears, then set "Keychain" to "System"
+
+@item Click on "Continue" until the certificate is created
+
+@item Finally, in the view, double-click on the new certificate,
+and set "When using this certificate" to "Always Trust"
+
+@item Exit the Keychain Access application and restart the computer
+(this is unfortunately required)
+
+@end itemize
+
+Once a certificate has been created, the debugger can be codesigned
+as follow. In a Terminal, run the following command...
+
+@smallexample
+codesign -f -s "gdb-cert" <gnat_install_prefix>/bin/gdb
+@end smallexample
+
+... where "gdb-cert" should be replaced by the actual certificate
+name chosen above, and <gnat_install_prefix> should be replaced by
+the location where you installed GNAT.
+
@end ifset
@c **********************************
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2009, 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- --
with System.Storage_Elements;
with System.Storage_Pools;
+
package System.Checked_Pools is
type Checked_Pool is abstract
new System.Storage_Pools.Root_Storage_Pool with private;
-- Equivalent of storage pools with the addition that Dereference is
-- called on each implicit or explicit dereference of a pointer which
- -- has such a storage pool
+ -- has such a storage pool.
procedure Dereference
(Pool : in out Checked_Pool;