Set proctitle: avoid the use of __attribute__((constructor)).

This cased a segfault in some Linux system and was GCC-specific.

Commit modified by @antirez:

1) Stripped away the part to set the proc title via config for now.
2) Handle initialization of setproctitle only when the replacement
   is used.
3) Don't require GCC now that the attribute constructor is no
   longer used.
This commit is contained in:
Stam He
2013-02-27 11:53:11 +08:00
committed by antirez
parent deb1f4d841
commit 9c8be6cab9
3 changed files with 15 additions and 4 deletions

View File

@ -2,6 +2,8 @@
* setproctitle.c - Linux/Darwin setproctitle.
* --------------------------------------------------------------------------
* Copyright (C) 2010 William Ahern
* Copyright (C) 2013 Salvatore Sanfilippo
* Copyright (C) 2013 Stam He
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
@ -42,8 +44,9 @@
#if !HAVE_SETPROCTITLE
#if (defined __linux || defined __APPLE__) && defined __GNUC__
#if (defined __linux || defined __APPLE__)
extern char **environ;
static struct {
/* original value */
@ -142,9 +145,8 @@ static int spt_copyargs(int argc, char *argv[]) {
} /* spt_copyargs() */
void spt_init(int argc, char *argv[], char *envp[]) __attribute__((constructor));
void spt_init(int argc, char *argv[], char *envp[]) {
void spt_init(int argc, char *argv[]) {
char **envp = environ;
char *base, *end, *nul, *tmp;
int i, error;