summaryrefslogtreecommitdiff
path: root/glibc/debugging
diff options
context:
space:
mode:
Diffstat (limited to 'glibc/debugging')
-rw-r--r--glibc/debugging/ld_so_console.mdwn20
-rw-r--r--glibc/debugging/ld_so_console/dl-sysdep.c.patch63
2 files changed, 0 insertions, 83 deletions
diff --git a/glibc/debugging/ld_so_console.mdwn b/glibc/debugging/ld_so_console.mdwn
deleted file mode 100644
index b3d1762f..00000000
--- a/glibc/debugging/ld_so_console.mdwn
+++ /dev/null
@@ -1,20 +0,0 @@
-[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]
-
-[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
-id="license" text="Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no Invariant
-Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
-is included in the section entitled [[GNU Free Documentation
-License|/fdl]]."]]"""]]
-
-If you need to debug something in the early `ld.so` startup, and can't refrain
-from good old `printf` debugging, there is a caveat: the available API in
-`ld.so` is rather limited. See the few functions is `dl-sysdep.c`. For
-example, there's a private `__libc_write`, which you should be able to use for
-writing to FD stderr -- but, at early `ld.so` startup, this isn't usable as
-`_hurd_init_dtable` is still all zeros, etc. To get you started, here is a
-simple [[dl-sysdep.c.patch]] to get access to the Mach console.
-
-Can this be integrated with the other debugging printf functions from
-`elf/dl-misc.c` (`_dl_debug_vdprintf`) ([[!taglink open_issue_glibc]])?
diff --git a/glibc/debugging/ld_so_console/dl-sysdep.c.patch b/glibc/debugging/ld_so_console/dl-sysdep.c.patch
deleted file mode 100644
index eec8d7c6..00000000
--- a/glibc/debugging/ld_so_console/dl-sysdep.c.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
-index ff37add..7e6d352 100644
---- a/sysdeps/mach/hurd/dl-sysdep.c
-+++ b/sysdeps/mach/hurd/dl-sysdep.c
-@@ -44,6 +44,8 @@
- #include <dl-machine.h>
- #include <dl-procinfo.h>
-
-+#include <device/device.h>
-+
- extern void __mach_init (void);
-
- extern int _dl_argc;
-@@ -116,6 +118,29 @@ static void fmh(void) {
- /* XXX loser kludge for vm_map kernel bug */
- #endif
-
-+/* Return a port to the Mach console. */
-+static mach_port_t
-+get_console (void)
-+{
-+ mach_port_t device_master, console;
-+ /* We cannot use __get_privileged_ports (from hurd/privports.c), as this
-+ drags in too much other libc stuff. */
-+#if 0
-+ error_t err = __get_privileged_ports (0, &device_master);
-+
-+ if (err)
-+ return MACH_PORT_NULL;
-+#else
-+ error_t err = 0;
-+ device_master = 2;
-+#endif
-+
-+ err = __device_open (device_master, D_WRITE | D_READ, "console", &console);
-+ if (err)
-+ return MACH_PORT_NULL;
-+
-+ return console;
-+}
-
- ElfW(Addr)
- _dl_sysdep_start (void **start_argptr,
-@@ -256,6 +279,20 @@ unfmh(); /* XXX */
- /* Set up so we can do RPCs. */
- __mach_init ();
-
-+ /* Open the Mach console so that any message can actually be seen. This is
-+ particularly useful at boot time, when started by the bootstrap file
-+ system. */
-+ mach_port_t console = get_console ();
-+ if (console != MACH_PORT_NULL)
-+ {
-+ /* stdout = mach_open_devstream (console, "w"); */
-+ /* stderr = stdout; */
-+ /* if (stdout != NULL) */
-+ /* printf ("Hello, world!\n"); */
-+ int written;
-+ __device_write_inband (console, 0, 0, "hello, world!\n", 14, &written);
-+ }
-+
- /* Initialize frequently used global variable. */
- GLRO(dl_pagesize) = __getpagesize (); \ No newline at end of file