Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update.
	* stdlib/Makefile: Add rules to build and run tst-putenv.
	* stdlib/tst-putenv.c: New file.
	* stdlib/tst-putenvmod.c: New file.
  • Loading branch information
Ulrich Drepper committed Jan 4, 2005
1 parent 3fb2606 commit 574b268
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 5 deletions.
3 changes: 3 additions & 0 deletions ChangeLog
Expand Up @@ -2,6 +2,9 @@

* sysdeps/generic/libc-start.c [SHARED] (__libc_start_main): Don't
initialize __environ again.
* stdlib/Makefile: Add rules to build and run tst-putenv.
* stdlib/tst-putenv.c: New file.
* stdlib/tst-putenvmod.c: New file.

* sysdeps/unix/sysv/linux/init-first.c: Clean file up. Don't
define unnecessary wrappers or aliases of static functions.
Expand Down
23 changes: 18 additions & 5 deletions stdlib/Makefile
@@ -1,4 +1,4 @@
# Copyright (C) 1991-2002, 2003, 2004 Free Software Foundation, Inc.
# Copyright (C) 1991-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# This file is part of the GNU C Library.

# The GNU C Library is free software; you can redistribute it and/or
Expand Down Expand Up @@ -65,6 +65,11 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \
tst-rand48 bug-strtod tst-setcontext test-a64l tst-qsort \
tst-system testmb2

include ../Makeconfig

ifeq ($(build-shared),yes)
tests += tst-putenv
endif

# Several mpn functions from GNU MP are used by the strtod function.
mpn-routines := inlines add_n addmul_1 cmp divmod_1 divrem udiv_qrnnd \
Expand All @@ -75,18 +80,20 @@ routines := $(strip $(routines) $(mpn-routines)) \
dbl2mpn ldbl2mpn \
mpn2flt mpn2dbl mpn2ldbl
aux += fpioconst mp_clz_tab
distribute := $(distribute) $(mpn-headers) gen-mpn-copy fpioconst.h
distribute := $(distribute) $(mpn-headers) gen-mpn-copy fpioconst.h \
tst-putenvmod.c

tests-extras += tst-putenvmod
extra-objs += tst-putenvmod.os

generated += isomac isomac.out
generated += isomac isomac.out tst-putenvmod.so

CFLAGS-bsearch.c = $(uses-callbacks)
CFLAGS-msort.c = $(uses-callbacks)
CFLAGS-qsort.c = $(uses-callbacks)
CFLAGS-system.c = -fexceptions
CFLAGS-fmtmsg.c = -fexceptions

include ../Makeconfig

ifneq (,$(filter %REENTRANT, $(defines)))
CFLAGS-strfmon.c = -D_IO_MTSAFE_IO
CFLAGS-strfmon_l.c = -D_IO_MTSAFE_IO
Expand Down Expand Up @@ -124,3 +131,9 @@ $(objpfx)isomac: isomac.c

$(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg
$(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)stdlib/

$(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so

$(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os
$(build-module)
CFLAGS-tst-putenvmod.c = -DNOT_IN_libc=1
18 changes: 18 additions & 0 deletions stdlib/tst-putenv.c
@@ -0,0 +1,18 @@
#include <stdio.h>
#include <stdlib.h>

static int
do_test (void)
{
char *p = getenv ("SOMETHING_NOBODY_USES");
if (p == NULL)
{
puts ("envvar not defined");
return 1;
}

return 0;
}

#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
17 changes: 17 additions & 0 deletions stdlib/tst-putenvmod.c
@@ -0,0 +1,17 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

void
__attribute ((constructor))
init (void)
{
puts ("init DSO");

static char str[] = "SOMETHING_NOBODY_USES=something_else";
if (putenv (str) != 0)
{
puts ("putenv failed");
_exit (1);
}
}

0 comments on commit 574b268

Please sign in to comment.