There are two noreturn functions in the X server: FatalError and
AbortServer. Having any of those two functions in the middle of a call
stack will prevent unwinding the program properly and stops the
backtrace at those functions in gdb.
The file containing FatalError and AbortServer, os/log.c, has to be
compiled with the -mapcs-frame option on ARM to get proper
backtraces. Automake imposes its own restrictions on compiling
individual source files with different options. The recommended way to
do this is to put os/log.c into a convenience library and add this
library inside os/libos.la. See the documentation of GNU Automake
manual, version 1.11.1, section 27.8 Per-Object Flags Emulation, for
details.
Signed-off-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
Xext/xf86bigfont.c contains three non-static functions which are called
elsewhere in the server. This creates a new header containing these
declarations in order to fix several warnings:
xf86bigfont.c:285: warning: no previous prototype for `XF86BigfontFreeFontShm'
dixfonts.c:502: warning: implicit declaration of function `XF86BigfontFreeFontS$
dixfonts.c:502: warning: nested extern declaration of `XF86BigfontFreeFontShm'
log.c:436: warning: implicit declaration of function `XF86BigfontCleanup'
log.c:436: warning: nested extern declaration of `XF86BigfontCleanup'
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Fix warnings due to prototypes not specifying function arguments
Fix warning with RegQueryValueEx()
Tidy up an include
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk>
There doesn't seem to be anything that defines it and given that the
counterpart (the X internal malloc) was removed in
01cfba7522 it's unlikely to work anyway.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
The problem fixed by this patch can be reproduced on Linux with the
following steps.
- Access NULL pointer intentionally in ProcessOtherEvent on key press.
- Instead of saving core dump to a file, write it into a pipe.
echo "|/usr/sbin/my-core-dumper" > /proc/sys/kernel/core_pattern
- Dump the core by pressing a key.
While the core is being dumped into the pipe, the smart schedule timer
will cause a pending SIGALRM. Linux kernel stops writing data to the
pipe when there are pending signals. This causes the core dump to be
truncated. On my system I'm expecting a 6 MB dump but the size will be
60 kB instead. The problem is solved if we block the SIGALRM caused by
expired smart schedule timer.
I haven't been able to reproduce this problem in the following cases.
- Save core dump to a file instead of a pipe.
- kill -SEGV `pidof Xorg`
- Press a key to dump core while gdb is attached to Xorg.
- Give option -dumbSched to Xorg.
Also note that the fix works only when NoTrapSignals has the default
value FALSE. The problem can still be reproduced if error signals
aren't trapped. In addition to pending SIGALRM, there is a similar
problem with pending SIGIO from the keyboard driver during core dump.
Signed-off-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Move tokenize out of the parser, make it a dix util function instead.
Splitting a string into multiple substrings is useful by other places, so
let's use it across the line. Future users include config/hal, config/udev
and of course the parser.
Example usage:
char **substrings = xstrtokenize(my_string, "\n");
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
commit 446fe9eecd removes the AC_DEFINE for
SERVER_LOCK and conditional compilation checking it, making it always on
everywhere, except in os/utils.c where code is left under SERVER_LOCK, which
now never gets built, making the '-nolock' option non-functional...
This seems to have been broken since Xserver 1.7.0, but this option is
actually of some slight use on cygwin, as if /tmp resides on a FAT filesystem
(yes, I know...), hard links aren't supported.
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Add timestamps in seconds derived from clock_monotonic to the log
file.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Simon Thum <simon.thum@gmx.de>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
FWIW default log verbosity is 0, so this will affect only if one start the
server with a different -verbose argument.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
main.c:134: warning: no previous prototype for 'dix_main'
rootlessScreen.c: In function 'RootlessMarkOverlappedWindows':
rootlessScreen.c:434: warning: function declaration isn't a prototype
backtrace.c:51: warning: format '%lx' expects type 'long unsigned int', but argument 5 has type 'int'
backtrace.c:54: warning: format '%lx' expects type 'long unsigned int', but argument 5 has type 'int'
set.c: In function 'RecordSetMemoryRequirements':
set.c:413: warning: old-style function definition
set.c: In function 'RecordCreateSet':
set.c:425: warning: old-style function definition
stub.c: In function ‘main’:
stub.c:236: warning: ISO C90 forbids mixed declarations and code
Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
Using common defaults will reduce errors and maintenance.
Only the very small or inexistent custom section need periodic maintenance
when the structure of the component changes. Do not edit defaults.
Reviewed-By: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
It seems that the getifaddrs() function can return interfaces with
IFF_BROADCAST & IFF_UP set, but no broadcast address (at least
under Cygwin 1.7, this seems to happen for v6 mapped v4 addresses)
Avoid a null dereference if this ever happens
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
libSystem on darwin can handle SHA1 computation without needing to pull in
OpenSSL. See CC_crypto(3)
Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
On Sun, Nov 01, 2009 at 02:54:13PM -0800, Keith Packard wrote:
> Excerpts from Matthieu Herrb's message of Sun Nov 01 09:34:35 -0800 2009:
>
> > +AC_CHECK_FUNCS([SHA1Init], [HAVE_LIBC_SHA1=yes])
>
> I'd suggest AC_CHECK_FUNC instead; as far as I can tell, AC_CHECK_FUNCS
> will also define HAVE_SHA1INIT. Also, can you use HAVE_LIBC_SHA1
> consistently rather than having two separate names (HAVE_LIBC_SHA1 and
> HAVE_SHA1_IN_LIBC)? Yes, I know one is a preprocessor symbol and the
> other is a cpp shell variable, but I think that will work anyway.
>
New version taking you comments into account.
From: Matthieu Herrb <matthieu.herrb@laas.fr>
Date: Sun, 1 Nov 2009 18:19:27 +0100
Subject: [PATCH] Add a probe for SHA1 functions in libc in *BSD.
The interface is the same as the one in libmd.
Signed-off-by: Keith Packard <keithp@keithp.com>
Previously DLOPEN_LIBS was managed in top-level configure.ac.
Instead bundle it with the code using dl*() functions to
avoid breakages in uncommon configurations.
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
There are small systems which don't need OpenSSL or gcrypt.
Add libsha1 (http://github.com/dottedmag/libsha1) as an alternative
small SHA1 implementation.
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Replaces special handling for Xquartz DDX and scales better to handling
the multiple platforms that now have some level of Dtrace support available.
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Turns out, there's an initializer at the top of backtrace() that (on
some arches) calls dlopen(). dlopen(), unsurprisingly, calls malloc().
So, call backtrace() early in signal handler setup so we can later
safely call it from the signal handler itself.
xextproto had Xlib client headers moved into libXext.
Protocol header files are named fooproto.h, header files with constants
foo.h or fooconst.h where foo.h was already in use for client-side headers.
For embedded use, it's convenient to be able to disable the cursor
completely, without having to audit and fix up all your third-party
code (e.g. Mozilla Firefox).
Add -nocursor and -cursor server options to enable and disable the
cursor. The default is still -cursor, but embedded users can run the
server with -nocursor to hide the cursor regardless of what
application developers do.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
LogVWrite is limited to a buffer size of 1024, so we don't loose anything here
by truncating. This way we can use LogVMessageVerb (and xf86Msg and friends)
during signal handlers with the normal message types.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Alan Coopersmith <alan.coopersmith@sun.com>
You could be more clever than this, but the wire protocol says this
really is an array of not more than 255 ARRAY8, so it's not just a
matter of changing the types.