[RFC/PATCH] ldso: always compile the debugging code to cut down on ifdefs

Mike Frysinger vapier at gentoo.org
Sun Nov 27 06:52:24 UTC 2011


Let gcc do DCE on debug code so that we get the compile checking benefits
without the code size overhead.  Most places no longer need to check the
ifdef's explicitly, but key off the existing debug variables as in the non
debug case, they will be constants.

This does add a lot of printf related warnings to the default builds, but
you'd see these anyways if you enable debugging.  Hopefully this will get
people to more quickly send fixes.

Signed-off-by: Mike Frysinger <vapier at gentoo.org>
---
 ldso/include/ldso.h              |   50 +++++++++++++++++++++-------------
 ldso/ldso/arm/elfinterp.c        |   46 ++++++++++---------------------
 ldso/ldso/avr32/elfinterp.c      |   18 ++----------
 ldso/ldso/bfin/dl-inlines.h      |    4 ---
 ldso/ldso/bfin/elfinterp.c       |   44 +++++++++---------------------
 ldso/ldso/c6x/dl-inlines.h       |   14 +++-------
 ldso/ldso/c6x/elfinterp.c        |   33 +++++-----------------
 ldso/ldso/cris/elfinterp.c       |   40 ++++-----------------------
 ldso/ldso/dl-debug.c             |   20 +++++++------
 ldso/ldso/frv/dl-inlines.h       |    4 ---
 ldso/ldso/frv/elfinterp.c        |   41 ++++++++--------------------
 ldso/ldso/i386/elfinterp.c       |   40 ++++-----------------------
 ldso/ldso/ldso.c                 |    2 -
 ldso/ldso/m68k/elfinterp.c       |   34 +++--------------------
 ldso/ldso/microblaze/elfinterp.c |   41 +++++-----------------------
 ldso/ldso/mips/elfinterp.c       |   55 +++++++++----------------------------
 ldso/ldso/powerpc/elfinterp.c    |   32 +++++-----------------
 ldso/ldso/sh/elfinterp.c         |   38 ++++++--------------------
 ldso/ldso/sh64/elfinterp.c       |   34 +++--------------------
 ldso/ldso/sparc/elfinterp.c      |   36 ++++--------------------
 ldso/ldso/x86_64/elfinterp.c     |   46 ++++++-------------------------
 ldso/ldso/xtensa/elfinterp.c     |   28 +++----------------
 ldso/libdl/libdl.c               |   12 ++------
 23 files changed, 177 insertions(+), 535 deletions(-)

diff --git a/ldso/include/ldso.h b/ldso/include/ldso.h
index 4c09177..e72eb3b 100644
--- a/ldso/include/ldso.h
+++ b/ldso/include/ldso.h
@@ -93,6 +93,7 @@ void _dl_add_to_slotinfo (struct link_map  *l);
 void ** __attribute__ ((const)) _dl_initial_error_catch_tsd (void);
 #endif
 #ifdef __SUPPORT_LD_DEBUG__
+# define __SUPPORT_LD_DEBUG_VAL__ 1
 extern char *_dl_debug;
 extern char *_dl_debug_symbols;
 extern char *_dl_debug_move;
@@ -101,38 +102,48 @@ extern char *_dl_debug_detail;
 extern char *_dl_debug_nofixups;
 extern char *_dl_debug_bindings;
 extern int   _dl_debug_file;
-# define __dl_debug_dprint(fmt, args...) \
-	_dl_dprintf(_dl_debug_file, "%s:%i: " fmt, __func__, __LINE__, ## args);
-# define _dl_if_debug_dprint(fmt, args...) \
-	do { if (_dl_debug) __dl_debug_dprint(fmt, ## args); } while (0)
 #else
-# define __dl_debug_dprint(fmt, args...) do {} while (0)
-# define _dl_if_debug_dprint(fmt, args...) do {} while (0)
+# define __SUPPORT_LD_DEBUG_VAL__ 0
+# define _dl_debug NULL
+# define _dl_debug_symbols NULL
+# define _dl_debug_move NULL
+# define _dl_debug_reloc NULL
+# define _dl_debug_detail NULL
+# define _dl_debug_nofixups NULL
+# define _dl_debug_bindings NULL
 # define _dl_debug_file 2
 #endif /* __SUPPORT_LD_DEBUG__ */
+#define _dl_debug_dprint(fmt, args...) \
+	do { \
+		if (__SUPPORT_LD_DEBUG_VAL__) \
+			_dl_dprintf(_dl_debug_file, "%s:%i: " fmt, __func__, __LINE__, ## args); \
+	} while (0)
+#define _dl_if_debug_dprint(fmt, args...) \
+	do { if (_dl_debug) _dl_debug_dprint(fmt, ## args); } while (0)
 
 #ifdef IS_IN_rtld
-# ifdef __SUPPORT_LD_DEBUG__
-#  define _dl_assert(expr)						\
-	do {								\
-		if (!(expr)) {						\
-			__dl_debug_dprint("assert(%s)\n", #expr);	\
-			_dl_exit(45);					\
-		}							\
+# define _dl_assert(expr) \
+	do { \
+		if (__SUPPORT_LD_DEBUG_VAL__ && !(expr)) { \
+			_dl_debug_dprint("assert(%s)\n", #expr); \
+			_dl_exit(45); \
+		} \
 	} while (0)
-# else
-#  define _dl_assert(expr) ((void)0)
-# endif
 #else
 # include <assert.h>
 # define _dl_assert(expr) assert(expr)
 #endif
 
 #ifdef __SUPPORT_LD_DEBUG_EARLY__
-# define _dl_debug_early(fmt, args...) __dl_debug_dprint(fmt, ## args)
+# define __SUPPORT_LD_DEBUG_EARLY_VAL__ 1
 #else
-# define _dl_debug_early(fmt, args...) do {} while (0)
+# define __SUPPORT_LD_DEBUG_EARLY_VAL__ 0
 #endif /* __SUPPORT_LD_DEBUG_EARLY__ */
+#define _dl_debug_early(fmt, args...) \
+	do { \
+		if (__SUPPORT_LD_DEBUG_EARLY_VAL__) \
+			_dl_debug_dprint(fmt, ## args); \
+	} while (0)
 
 #ifndef NULL
 #define NULL ((void *) 0)
@@ -145,7 +156,8 @@ extern void _dl_free(void *);
 extern char *_dl_getenv(const char *symbol, char **envp);
 extern void _dl_unsetenv(const char *symbol, char **envp);
 extern char *_dl_strdup(const char *string);
-extern void _dl_dprintf(int, const char *, ...);
+extern void _dl_dprintf(int, const char *, ...)
+	__attribute__ ((__format__ (__printf__, 2, 3)));
 
 #ifndef DL_GET_READY_TO_RUN_EXTRA_PARMS
 # define DL_GET_READY_TO_RUN_EXTRA_PARMS
diff --git a/ldso/ldso/arm/elfinterp.c b/ldso/ldso/arm/elfinterp.c
index cde055d..795ed35 100644
--- a/ldso/ldso/arm/elfinterp.c
+++ b/ldso/ldso/arm/elfinterp.c
@@ -76,24 +76,20 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 			_dl_progname, symname);
 		_dl_exit(1);
 	}
-#if defined (__SUPPORT_LD_DEBUG__)
+
 #if !defined __SUPPORT_LD_DEBUG_EARLY__
 	if ((unsigned long) got_addr < 0x40000000)
 #endif
 	{
 		if (_dl_debug_bindings)
 		{
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+			_dl_debug_dprint("\nresolve function: %s", symname);
 			if (_dl_debug_detail) _dl_dprintf(_dl_debug_file,
 					"\tpatch %x ==> %x @ %x", *got_addr, new_addr, got_addr);
 		}
 	}
-	if (!_dl_debug_nofixups) {
+	if (!_dl_debug_nofixups)
 		*got_addr = (char *)new_addr;
-	}
-#else
-	*got_addr = (char *)new_addr;
-#endif
 
 	return new_addr;
 }
@@ -137,12 +133,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 
 		if (unlikely(res <0))
 		{
-		        int reloc_type = ELF32_R_TYPE(rpnt->r_info);
-#if defined (__SUPPORT_LD_DEBUG__)
-			_dl_dprintf(2, "can't handle reloc type %s\n ", _dl_reltypes(reloc_type));
-#else
-			_dl_dprintf(2, "can't handle reloc type %x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		}
 		if (unlikely(res >0))
@@ -192,6 +183,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	struct symbol_ref sym_ref;
 	struct elf_resolve *def_mod = 0;
 	int goof = 0;
+	unsigned long old_val;
 
 	reloc_addr = (unsigned long *) (tpnt->loadaddr + (unsigned long) rpnt->r_offset);
 
@@ -232,10 +224,8 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 		def_mod = tpnt;
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
-	{
-		unsigned long old_val = *reloc_addr;
-#endif
+	old_val = *reloc_addr;
+
 		switch (reloc_type) {
 			case R_ARM_NONE:
 				break;
@@ -302,12 +292,9 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 			default:
 				return -1; /*call _dl_exit(1) */
 		}
-#if defined (__SUPPORT_LD_DEBUG__)
-		if (_dl_debug_reloc && _dl_debug_detail)
-			_dl_dprintf(_dl_debug_file, "\tpatch: %x ==> %x @ %x", old_val, *reloc_addr, reloc_addr);
-	}
 
-#endif
+	if (_dl_debug_reloc && _dl_debug_detail)
+		_dl_debug_dprint("\tpatch: %x ==> %x @ %x", old_val, *reloc_addr, reloc_addr);
 
 	return goof;
 }
@@ -318,14 +305,13 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 {
 	int reloc_type;
 	unsigned long *reloc_addr;
+	unsigned long old_val;
 
 	reloc_addr = (unsigned long *) (tpnt->loadaddr + (unsigned long) rpnt->r_offset);
 	reloc_type = ELF32_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
-	{
-		unsigned long old_val = *reloc_addr;
-#endif
+	old_val = *reloc_addr;
+
 		switch (reloc_type) {
 			case R_ARM_NONE:
 				break;
@@ -335,12 +321,10 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			default:
 				return -1; /*call _dl_exit(1) */
 		}
-#if defined (__SUPPORT_LD_DEBUG__)
-		if (_dl_debug_reloc && _dl_debug_detail)
-			_dl_dprintf(_dl_debug_file, "\tpatch: %x ==> %x @ %x", old_val, *reloc_addr, reloc_addr);
-	}
 
-#endif
+	if (_dl_debug_reloc && _dl_debug_detail)
+		_dl_debug_dprint("\tpatch: %x ==> %x @ %x", old_val, *reloc_addr, reloc_addr);
+
 	return 0;
 
 }
diff --git a/ldso/ldso/avr32/elfinterp.c b/ldso/ldso/avr32/elfinterp.c
index dd17fdc..b2b1653 100644
--- a/ldso/ldso/avr32/elfinterp.c
+++ b/ldso/ldso/avr32/elfinterp.c
@@ -98,14 +98,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 				    strtab + symtab[symtab_index].st_name);
 
 		if (res < 0) {
-			int reloc_type = ELF32_R_TYPE(rpnt->r_info);
-#if defined(__SUPPORT_LD_DEBUG__)
-			_dl_dprintf(2, "can't handle reloc type %s\n",
-				    _dl_reltypes(reloc_type));
-#else
-			_dl_dprintf(2, "can't handle reloc type %x\n",
-				    reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		} else {
 			_dl_dprintf(2, "can't resolve symbol\n");
@@ -124,9 +117,7 @@ static int _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	char *symname;
 	unsigned long *reloc_addr;
 	unsigned long symbol_addr;
-#if defined(__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 	struct symbol_ref sym_ref;
 
 	reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
@@ -155,9 +146,8 @@ static int _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		}
 	}
 
-#if defined(__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
+
 	switch (reloc_type) {
 	case R_AVR32_NONE:
 		break;
@@ -173,11 +163,9 @@ static int _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		return -1;
 	}
 
-#if defined(__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr);
-#endif
 
 	return 0;
 }
diff --git a/ldso/ldso/bfin/dl-inlines.h b/ldso/ldso/bfin/dl-inlines.h
index 9699862..e2d3e01 100644
--- a/ldso/ldso/bfin/dl-inlines.h
+++ b/ldso/ldso/bfin/dl-inlines.h
@@ -87,12 +87,10 @@ __dl_init_loadaddr_hdr (struct elf32_fdpic_loadaddr loadaddr, void *addr,
   segdata->p_vaddr = phdr->p_vaddr;
   segdata->p_memsz = phdr->p_memsz;
 
-#if defined (__SUPPORT_LD_DEBUG__)
   if (_dl_debug)
     _dl_dprintf(_dl_debug_file, "%i: mapped %x at %x, size %x\n",
 		loadaddr.map->nsegs-1,
 		segdata->p_vaddr, segdata->addr, segdata->p_memsz);
-#endif
 }
 
 /* Replace an existing entry in the load map.  */
@@ -116,12 +114,10 @@ __dl_update_loadaddr_hdr (struct elf32_fdpic_loadaddr loadaddr, void *addr,
   _dl_munmap (oldaddr, segdata->p_memsz);
   segdata->addr = (Elf32_Addr) addr;
 
-#if defined (__SUPPORT_LD_DEBUG__)
   if (_dl_debug)
     _dl_dprintf(_dl_debug_file, "%i: changed mapping %x at %x (old %x), size %x\n",
 		loadaddr.map->nsegs-1,
 		segdata->p_vaddr, segdata->addr, oldaddr, segdata->p_memsz);
-#endif
 }
 
 static __always_inline void __dl_loadaddr_unmap
diff --git a/ldso/ldso/bfin/elfinterp.c b/ldso/ldso/bfin/elfinterp.c
index 3d14126..c85468f 100644
--- a/ldso/ldso/bfin/elfinterp.c
+++ b/ldso/ldso/bfin/elfinterp.c
@@ -80,22 +80,16 @@ _dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry)
 	funcval.entry_point = new_addr;
 	funcval.got_value = sym_ref.tpnt->loadaddr.got_value;
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_bindings) {
-		_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+		_dl_debug_dprint("\nresolve function: %s", symname);
 		if (_dl_debug_detail)
-			_dl_dprintf(_dl_debug_file,
-				    "\n\tpatched (%x,%x) ==> (%x,%x) @ %x\n",
+			_dl_debug_dprint("\n\tpatched (%x,%x) ==> (%x,%x) @ %x\n",
 				    got_entry->entry_point, got_entry->got_value,
 				    funcval.entry_point, funcval.got_value,
 				    got_entry);
 	}
-	if (1 || !_dl_debug_nofixups) {
+	if (!_dl_debug_nofixups)
 		*got_entry = funcval;
-	}
-#else
-	*got_entry = funcval;
-#endif
 
 	return got_entry;
 }
@@ -136,12 +130,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			_dl_dprintf(2, "symbol '%s': ", strtab + symtab[symtab_index].st_name);
 
 		if (res <0) {
-		        int reloc_type = ELF_R_TYPE(rpnt->r_info);
-#if defined (__SUPPORT_LD_DEBUG__)
-			_dl_dprintf(2, "can't handle reloc type %s\n ", _dl_reltypes(reloc_type));
-#else
-			_dl_dprintf(2, "can't handle reloc type %x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		} else if (res >0) {
 			_dl_dprintf(2, "can't resolve symbol\n");
@@ -164,9 +153,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	unsigned long symbol_addr;
 	struct elf_resolve *symbol_tpnt;
 	struct funcdesc_value funcval;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 	struct symbol_ref sym_ref;
 
 	reloc_addr   = (unsigned long *) DL_RELOC_ADDR(tpnt->loadaddr, rpnt->r_offset);
@@ -204,7 +191,6 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 		symbol_tpnt = sym_ref.tpnt;
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	  {
 	    if ((long)reloc_addr_packed & 3)
@@ -214,7 +200,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	  }
 	else
 	  old_val = 0;
-#endif
+
 	switch (reloc_type) {
 	case R_BFIN_UNUSED0:
 		break;
@@ -262,23 +248,22 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	default:
 		return -1;
 	}
-#if defined (__SUPPORT_LD_DEBUG__)
+
 	if (_dl_debug_reloc && _dl_debug_detail) {
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x", old_val, reloc_value, reloc_addr);
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x", old_val, reloc_value, reloc_addr);
 		switch (reloc_type) {
 		case R_BFIN_FUNCDESC_VALUE:
-			_dl_dprintf(_dl_debug_file, " got %x", ((struct funcdesc_value *)reloc_value)->got_value);
+			_dl_debug_dprint(" got %x", ((struct funcdesc_value *)reloc_value)->got_value);
 			break;
 		case R_BFIN_FUNCDESC:
 			if (! reloc_value)
 				break;
-			_dl_dprintf(_dl_debug_file, " funcdesc (%x,%x)",
+			_dl_debug_dprint(" funcdesc (%x,%x)",
 				    ((struct funcdesc_value *)reloc_value)->entry_point,
 				    ((struct funcdesc_value *)reloc_value)->got_value);
 			break;
 		}
 	}
-#endif
 
 	return 0;
 }
@@ -292,16 +277,13 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt,
 	int reloc_type;
 	struct funcdesc_value volatile *reloc_addr;
 	struct funcdesc_value funcval;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 
 	reloc_addr = (struct funcdesc_value *) DL_RELOC_ADDR(tpnt->loadaddr, rpnt->r_offset);
 	reloc_type = ELF_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = (unsigned long)reloc_addr->entry_point;
-#endif
+
 		switch (reloc_type) {
 			case R_BFIN_UNUSED0:
 				break;
@@ -314,10 +296,10 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt,
 			default:
 				return -1;
 		}
-#if defined (__SUPPORT_LD_DEBUG__)
+
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, reloc_addr->entry_point, reloc_addr);
-#endif
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n", old_val, reloc_addr->entry_point, reloc_addr);
+
 	return 0;
 
 }
diff --git a/ldso/ldso/c6x/dl-inlines.h b/ldso/ldso/c6x/dl-inlines.h
index 62e1cc9..8a8075b 100644
--- a/ldso/ldso/c6x/dl-inlines.h
+++ b/ldso/ldso/c6x/dl-inlines.h
@@ -64,14 +64,10 @@ __dl_init_loadaddr_hdr (struct elf32_dsbt_loadaddr loadaddr, void *addr,
 	segdata->p_vaddr = phdr->p_vaddr;
 	segdata->p_memsz = phdr->p_memsz;
 
-#if defined (__SUPPORT_LD_DEBUG__)
-	{
-		if (_dl_debug)
-			_dl_dprintf(_dl_debug_file, "%i: mapped %x at %x, size %x\n",
-				    loadaddr.map->nsegs-1,
-				    segdata->p_vaddr, segdata->addr, segdata->p_memsz);
-	}
-#endif
+	if (_dl_debug)
+		_dl_dprintf(_dl_debug_file, "%i: mapped %x at %x, size %x\n",
+			    loadaddr.map->nsegs-1,
+			    segdata->p_vaddr, segdata->addr, segdata->p_memsz);
 }
 
 /* Replace an existing entry in the load map.  */
@@ -95,12 +91,10 @@ __dl_update_loadaddr_hdr (struct elf32_dsbt_loadaddr loadaddr, void *addr,
 	_dl_munmap (oldaddr, segdata->p_memsz);
 	segdata->addr = (Elf32_Addr) addr;
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug)
 		_dl_dprintf(_dl_debug_file, "%i: changed mapping %x at %x (old %x), size %x\n",
 			    loadaddr.map->nsegs-1,
 			    segdata->p_vaddr, segdata->addr, oldaddr, segdata->p_memsz);
-#endif
 }
 
 static __always_inline void
diff --git a/ldso/ldso/c6x/elfinterp.c b/ldso/ldso/c6x/elfinterp.c
index f5d3ad4..a83e84d 100644
--- a/ldso/ldso/c6x/elfinterp.c
+++ b/ldso/ldso/c6x/elfinterp.c
@@ -76,21 +76,15 @@ _dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_bindings) {
-		_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+		_dl_debug_dprint("\nresolve function: %s", symname);
 		if (_dl_debug_detail)
 			_dl_dprintf(_dl_debug_file,
 				    "\n\tpatched %x ==> %x @ %x\n",
 				    *got_addr, new_addr, got_addr);
 	}
-	if (!_dl_debug_nofixups) {
+	if (!_dl_debug_nofixups)
 		*got_addr = new_addr;
-	}
-#else
-	*got_addr = new_addr;
-#endif
 
 	return new_addr;
 }
@@ -131,12 +125,7 @@ _dl_parse(struct elf_resolve *tpnt, struct dyn_elf *scope,
 			_dl_dprintf(2, "symbol '%s': ", strtab + symtab[symtab_index].st_name);
 
 		if (res <0) {
-		        int reloc_type = ELF32_R_TYPE(rpnt->r_info);
-#if defined (__SUPPORT_LD_DEBUG__)
-			_dl_dprintf(2, "can't handle reloc type %s\n ", _dl_reltypes(reloc_type));
-#else
-			_dl_dprintf(2, "can't handle reloc type %x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		} else if (res >0) {
 			_dl_dprintf(2, "can't resolve symbol\n");
@@ -216,14 +205,11 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
 		break;
 	case R_C6000_COPY:
 		if (symbol_addr) {
-#if defined (__SUPPORT_LD_DEBUG__)
 			if (_dl_debug_move)
 				_dl_dprintf(_dl_debug_file,
 					    "\n%s move %d bytes from %x to %x",
 					    symname, symtab[symtab_index].st_size,
 					    symbol_addr, reloc_addr);
-#endif
-			
 			_dl_memcpy((char *)reloc_addr,
 				   (char *)symbol_addr,
 				   symtab[symtab_index].st_size);
@@ -232,11 +218,10 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
 	default:
 		return -1; /*call _dl_exit(1) */
 	}
-#if defined (__SUPPORT_LD_DEBUG__)
-	if (_dl_debug_reloc && _dl_debug_detail && reloc_type != R_C6000_NONE) {
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, new_val, reloc_addr);
-	}
-#endif
+
+	if (_dl_debug_reloc && _dl_debug_detail && reloc_type != R_C6000_NONE)
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n", old_val, new_val, reloc_addr);
+
 	return 0;
 }
 
@@ -265,11 +250,9 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt,
 			return -1;
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\n\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
diff --git a/ldso/ldso/cris/elfinterp.c b/ldso/ldso/cris/elfinterp.c
index cc4920d..7864332 100644
--- a/ldso/ldso/cris/elfinterp.c
+++ b/ldso/ldso/cris/elfinterp.c
@@ -72,20 +72,15 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_bindings) {
-		_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+		_dl_debug_dprint("\nresolve function: %s", symname);
 		if (_dl_debug_detail)
 			_dl_dprintf(_dl_debug_file,
 				    "\n\tpatched: %x ==> %x @ %x\n",
 				    *got_addr, new_addr, got_addr);
 	}
-	if (!_dl_debug_nofixups) {
+	if (!_dl_debug_nofixups)
 		*got_addr = new_addr;
-	}
-#else
-	*got_addr = new_addr;
-#endif
 
 	return (unsigned long)new_addr;
 }
@@ -130,15 +125,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 				    strtab + symtab[symtab_index].st_name);
 
 		if (unlikely(res < 0)) {
-			int reloc_type = ELF32_R_TYPE(rpnt->r_info);
-
-#if defined (__SUPPORT_LD_DEBUG__)
-			_dl_dprintf(2, "can't handle reloc type %s\n",
-				    _dl_reltypes(reloc_type));
-#else
-			_dl_dprintf(2, "can't handle reloc type %x\n",
-				    reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		} else if (unlikely(res > 0)) {
 			_dl_dprintf(2, "can't resolve symbol\n");
@@ -158,9 +145,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	char *symname;
 	unsigned long *reloc_addr;
 	unsigned long symbol_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 	struct symbol_ref sym_ref;
 
 	reloc_addr = (unsigned long *)(intptr_t)(tpnt->loadaddr + (unsigned long)rpnt->r_offset);
@@ -192,9 +177,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		}
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_CRIS_NONE:
@@ -205,13 +188,10 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			*reloc_addr = symbol_addr;
 			break;
 		case R_CRIS_COPY:
-#if defined (__SUPPORT_LD_DEBUG__)
 			if (_dl_debug_move)
-				_dl_dprintf(_dl_debug_file,
-					    "\n%s move %d bytes from %x to %x",
+				_dl_debug_dprint("\n%s move %d bytes from %x to %x",
 					    symname, symtab[symtab_index].st_size,
 					    symbol_addr, reloc_addr);
-#endif
 
 			_dl_memcpy((char *)reloc_addr,
 				   (char *)symbol_addr,
@@ -224,11 +204,9 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			return -1;	/* Calls _dl_exit(1). */
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\n\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
@@ -239,9 +217,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 {
 	int reloc_type;
 	unsigned long *reloc_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 
 	/* Don't care about these, just keep the compiler happy. */
 	(void)scope;
@@ -251,9 +227,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	reloc_addr = (unsigned long *)(intptr_t)(tpnt->loadaddr + (unsigned long)rpnt->r_offset);
 	reloc_type = ELF32_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_CRIS_NONE:
@@ -265,11 +239,9 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			return -1;	/* Calls _dl_exit(1). */
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\n\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
diff --git a/ldso/ldso/dl-debug.c b/ldso/ldso/dl-debug.c
index 1758bc3..bb2b7c6 100644
--- a/ldso/ldso/dl-debug.c
+++ b/ldso/ldso/dl-debug.c
@@ -39,8 +39,6 @@
 
 #include "ldso.h"
 
-#if defined (__SUPPORT_LD_DEBUG__)
-
 /* include the arch-specific _dl_reltypes_tab */
 #include "dl-debug.h"
 
@@ -57,6 +55,17 @@ static const char *_dl_reltypes(int type)
 
 	return str;
 }
+static void _dl_dprintf_unhandled_reltype(int type)
+{
+	_dl_dprintf(2, "can't handle reloc type "
+#if defined (__SUPPORT_LD_DEBUG__)
+		"%s\n", _dl_reltypes(type)
+#else
+		"%x\n", type
+#endif
+	);
+}
+
 static void debug_sym(ElfW(Sym) *symtab, char *strtab, int symtab_index)
 {
 	if (!_dl_debug_symbols || !symtab_index)
@@ -98,13 +107,6 @@ static void debug_reloc(ElfW(Sym) *symtab, char *strtab, ELF_RELOC *rpnt)
 	_dl_dprintf(_dl_debug_file, "\n");
 }
 
-#else
-
-#define debug_sym(symtab, strtab, symtab_index)
-#define debug_reloc(symtab, strtab, rpnt)
-
-#endif /* __SUPPORT_LD_DEBUG__ */
-
 #ifdef __LDSO_PRELINK_SUPPORT__
 static void
 internal_function
diff --git a/ldso/ldso/frv/dl-inlines.h b/ldso/ldso/frv/dl-inlines.h
index 0395a7e..d238172 100644
--- a/ldso/ldso/frv/dl-inlines.h
+++ b/ldso/ldso/frv/dl-inlines.h
@@ -71,12 +71,10 @@ __dl_init_loadaddr_hdr (struct elf32_fdpic_loadaddr loadaddr, void *addr,
   segdata->p_vaddr = phdr->p_vaddr;
   segdata->p_memsz = phdr->p_memsz;
 
-#if defined (__SUPPORT_LD_DEBUG__)
   if (_dl_debug)
     _dl_dprintf(_dl_debug_file, "%i: mapped %x at %x, size %x\n",
 		loadaddr.map->nsegs-1,
 		segdata->p_vaddr, segdata->addr, segdata->p_memsz);
-#endif
 }
 
 /* Replace an existing entry in the load map.  */
@@ -100,12 +98,10 @@ __dl_update_loadaddr_hdr (struct elf32_fdpic_loadaddr loadaddr, void *addr,
   _dl_munmap (oldaddr, segdata->p_memsz);
   segdata->addr = (Elf32_Addr) addr;
 
-#if defined (__SUPPORT_LD_DEBUG__)
   if (_dl_debug)
     _dl_dprintf(_dl_debug_file, "%i: changed mapping %x at %x (old %x), size %x\n",
 		loadaddr.map->nsegs-1,
 		segdata->p_vaddr, segdata->addr, oldaddr, segdata->p_memsz);
-#endif
 }
 
 static __always_inline void __dl_loadaddr_unmap
diff --git a/ldso/ldso/frv/elfinterp.c b/ldso/ldso/frv/elfinterp.c
index 726b58b..eb01b55 100644
--- a/ldso/ldso/frv/elfinterp.c
+++ b/ldso/ldso/frv/elfinterp.c
@@ -69,10 +69,9 @@ _dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry)
 	funcval.entry_point = new_addr;
 	funcval.got_value = new_tpnt->loadaddr.got_value;
 
-#if defined (__SUPPORT_LD_DEBUG__)
 		if (_dl_debug_bindings)
 		{
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+			_dl_debug_dprint("\nresolve function: %s", symname);
 			if (_dl_debug_detail)
 				_dl_dprintf(_dl_debug_file,
 					    "\n\tpatched (%x,%x) ==> (%x,%x) @ %x\n",
@@ -80,12 +79,8 @@ _dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry)
 					    funcval.entry_point, funcval.got_value,
 					    got_entry);
 		}
-	if (!_dl_debug_nofixups) {
+	if (!_dl_debug_nofixups)
 		*got_entry = funcval;
-	}
-#else
-	*got_entry = funcval;
-#endif
 
 	return got_entry;
 }
@@ -128,12 +123,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 
 		if (res <0)
 		{
-		        int reloc_type = ELF32_R_TYPE(rpnt->r_info);
-#if defined (__SUPPORT_LD_DEBUG__)
-			_dl_dprintf(2, "can't handle reloc type %s\n ", _dl_reltypes(reloc_type));
-#else
-			_dl_dprintf(2, "can't handle reloc type %x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		}
 		else if (res >0)
@@ -158,9 +148,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	unsigned long symbol_addr;
 	struct elf_resolve *symbol_tpnt;
 	struct funcdesc_value funcval;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 
 	reloc_addr   = (unsigned long *)(intptr_t)
 	  DL_RELOC_ADDR (rpnt->r_offset, tpnt->loadaddr);
@@ -193,7 +181,6 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 		}
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	  {
 	    if ((long)reloc_addr_packed & 3)
@@ -203,7 +190,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	  }
 	else
 	  old_val = 0;
-#endif
+
 	switch (reloc_type) {
 	case R_FRV_NONE:
 		break;
@@ -253,23 +240,22 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	default:
 		return -1; /*call _dl_exit(1) */
 	}
-#if defined (__SUPPORT_LD_DEBUG__)
+
 	if (_dl_debug_reloc && _dl_debug_detail) {
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x", old_val, reloc_value, reloc_addr);
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x", old_val, reloc_value, reloc_addr);
 		switch (reloc_type) {
 		case R_FRV_FUNCDESC_VALUE:
-			_dl_dprintf(_dl_debug_file, " got %x", ((struct funcdesc_value *)reloc_value)->got_value);
+			_dl_debug_dprint(" got %x", ((struct funcdesc_value *)reloc_value)->got_value);
 			break;
 		case R_FRV_FUNCDESC:
 			if (! reloc_value)
 				break;
-			_dl_dprintf(_dl_debug_file, " funcdesc (%x,%x)",
+			_dl_debug_dprint(" funcdesc (%x,%x)",
 				    ((struct funcdesc_value *)reloc_value)->entry_point,
 				    ((struct funcdesc_value *)reloc_value)->got_value);
 			break;
 		}
 	}
-#endif
 
 	return 0;
 }
@@ -283,17 +269,14 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt,
 	int reloc_type;
 	struct funcdesc_value volatile *reloc_addr;
 	struct funcdesc_value funcval;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 
 	reloc_addr = (struct funcdesc_value *)(intptr_t)
 	  DL_RELOC_ADDR (rpnt->r_offset, tpnt->loadaddr);
 	reloc_type = ELF32_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = (unsigned long)reloc_addr->entry_point;
-#endif
+
 		switch (reloc_type) {
 			case R_FRV_NONE:
 				break;
@@ -308,10 +291,10 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt,
 			default:
 				return -1; /*call _dl_exit(1) */
 		}
-#if defined (__SUPPORT_LD_DEBUG__)
+
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, reloc_addr->entry_point, reloc_addr);
-#endif
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n", old_val, reloc_addr->entry_point, reloc_addr);
+
 	return 0;
 
 }
diff --git a/ldso/ldso/i386/elfinterp.c b/ldso/ldso/i386/elfinterp.c
index 9772e9a..dd2e542 100644
--- a/ldso/ldso/i386/elfinterp.c
+++ b/ldso/ldso/i386/elfinterp.c
@@ -77,22 +77,17 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if ((unsigned long)got_addr < 0x40000000) {
 		if (_dl_debug_bindings) {
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+			_dl_debug_dprint("\nresolve function: %s", symname);
 			if (_dl_debug_detail)
 				_dl_dprintf(_dl_debug_file,
 				            "\n\tpatched: %x ==> %x @ %x",
 				            *got_addr, new_addr, got_addr);
 		}
 	}
-	if (!_dl_debug_nofixups) {
+	if (!_dl_debug_nofixups)
 		*got_addr = new_addr;
-	}
-#else
-	*got_addr = new_addr;
-#endif
 
 	return (unsigned long)new_addr;
 }
@@ -136,15 +131,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 				    strtab + symtab[symtab_index].st_name);
 
 		if (unlikely(res < 0)) {
-			int reloc_type = ELF32_R_TYPE(rpnt->r_info);
-
-#if defined (__SUPPORT_LD_DEBUG__)
-			_dl_dprintf(2, "can't handle reloc type '%s' in lib '%s'\n",
-				    _dl_reltypes(reloc_type), tpnt->libname);
-#else
-			_dl_dprintf(2, "can't handle reloc type %x in lib '%s'\n",
-				    reloc_type, tpnt->libname);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			return res;
 		} else if (unlikely(res > 0)) {
 			_dl_dprintf(2, "can't resolve symbol in lib '%s'.\n", tpnt->libname);
@@ -165,9 +152,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	struct elf_resolve *tls_tpnt = NULL;
 	unsigned long *reloc_addr;
 	unsigned long symbol_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 	struct symbol_ref sym_ref;
 
 	reloc_addr = (unsigned long *)(intptr_t)(tpnt->loadaddr + (unsigned long)rpnt->r_offset);
@@ -200,9 +185,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		tls_tpnt = tpnt;
 	}
 	
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_386_NONE:
@@ -222,13 +205,10 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			break;
 		case R_386_COPY:
 			if (symbol_addr) {
-#if defined (__SUPPORT_LD_DEBUG__)
 				if (_dl_debug_move)
-					_dl_dprintf(_dl_debug_file,
-						    "\n%s move %d bytes from %x to %x",
+					_dl_debug_dprint("\n%s move %d bytes from %x to %x",
 						    symname, symtab[symtab_index].st_size,
 						    symbol_addr, reloc_addr);
-#endif
 
 				_dl_memcpy((char *)reloc_addr,
 					   (char *)symbol_addr,
@@ -259,11 +239,9 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			return -1;
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\n\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
@@ -274,9 +252,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 {
 	int reloc_type;
 	unsigned long *reloc_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 
 	(void)scope;
 	(void)symtab;
@@ -285,9 +261,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	reloc_addr = (unsigned long *)(intptr_t)(tpnt->loadaddr + (unsigned long)rpnt->r_offset);
 	reloc_type = ELF32_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_386_NONE:
@@ -299,11 +273,9 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			return -1;
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\n\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
index 0dff978..6b9e050 100644
--- a/ldso/ldso/ldso.c
+++ b/ldso/ldso/ldso.c
@@ -1082,7 +1082,6 @@ of this helper program; chances are you did not intend to run this program.\n\
 			}
 		}
 	}
-#ifdef __SUPPORT_LD_DEBUG__
 	if (_dl_debug) {
 		_dl_dprintf(_dl_debug_file, "\nINIT/FINI order and dependencies:\n");
 		for (i = 0; i < nlist; i++) {
@@ -1096,7 +1095,6 @@ of this helper program; chances are you did not intend to run this program.\n\
 			_dl_dprintf(_dl_debug_file, "\n");
 		}
 	}
-#endif
 
 	/*
 	 * If the program interpreter is not in the module chain, add it.
diff --git a/ldso/ldso/m68k/elfinterp.c b/ldso/ldso/m68k/elfinterp.c
index 4e87142..1ab9207 100644
--- a/ldso/ldso/m68k/elfinterp.c
+++ b/ldso/ldso/m68k/elfinterp.c
@@ -76,10 +76,9 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if ((unsigned long)got_addr < 0x40000000) {
 		if (_dl_debug_bindings) {
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+			_dl_debug_dprint("\nresolve function: %s", symname);
 			if (_dl_debug_detail)
 				_dl_dprintf(_dl_debug_file,
 				            "\tpatched: %x ==> %x @ %x\n",
@@ -87,7 +86,6 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		}
 	}
 	if (!_dl_debug_nofixups)
-#endif
 		*got_addr = new_addr;
 
 	return (unsigned int)new_addr;
@@ -132,14 +130,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 				    strtab + symtab[symtab_index].st_name);
 
 		if (unlikely(res < 0)) {
-			int reloc_type = ELF_R_TYPE(rpnt->r_info);
-
-			_dl_dprintf(2, "can't handle reloc type "
-#if defined (__SUPPORT_LD_DEBUG__)
-				    "%s\n", _dl_reltypes(reloc_type));
-#else
-				    "%x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		} else if (unlikely(res > 0)) {
 			_dl_dprintf(2, "can't resolve symbol\n");
@@ -160,9 +151,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	struct symbol_ref sym_ref;
 	ElfW(Addr) *reloc_addr;
 	ElfW(Addr) symbol_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	ElfW(Addr) old_val;
-#endif
 
 	reloc_addr = (ElfW(Addr)*)(tpnt->loadaddr + (unsigned long)rpnt->r_offset);
 	reloc_type = ELF_R_TYPE(rpnt->r_info);
@@ -190,9 +179,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		}
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_68K_NONE:
@@ -231,13 +218,10 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			break;
 		case R_68K_COPY:
 			if (symbol_addr) {
-#if defined (__SUPPORT_LD_DEBUG__)
 				if (_dl_debug_move)
-					_dl_dprintf(_dl_debug_file,
-						    "\t%s move %d bytes from %x to %x\n",
+					_dl_debug_dprint("\t%s move %d bytes from %x to %x\n",
 						    symname, sym_ref.sym->st_size,
 						    symbol_addr, reloc_addr);
-#endif
 				_dl_memcpy ((void *) reloc_addr,
 				            (void *) symbol_addr,
 				            sym_ref.sym->st_size);
@@ -249,11 +233,9 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			return -1;	/* Calls _dl_exit(1). */
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
@@ -267,9 +249,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	int reloc_type;
 	int symtab_index;
 	ElfW(Addr) *reloc_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	ElfW(Addr) old_val;
-#endif
 
 	(void)scope;
 	symtab_index = ELF_R_SYM(rpnt->r_info);
@@ -278,9 +258,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	reloc_addr = (ElfW(Addr)*)(tpnt->loadaddr + rpnt->r_offset);
 	reloc_type = ELF_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_68K_NONE:
@@ -292,11 +270,9 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched_lazy: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched_lazy: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
diff --git a/ldso/ldso/microblaze/elfinterp.c b/ldso/ldso/microblaze/elfinterp.c
index 1f6aeff..a59abf3 100644
--- a/ldso/ldso/microblaze/elfinterp.c
+++ b/ldso/ldso/microblaze/elfinterp.c
@@ -76,10 +76,9 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if ((unsigned long)got_addr < 0x40000000) {
 		if (_dl_debug_bindings) {
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+			_dl_debug_dprint("\nresolve function: %s", symname);
 			if (_dl_debug_detail)
 				_dl_dprintf(_dl_debug_file,
 				            "\tpatched: %x ==> %x @ %x\n",
@@ -87,7 +86,6 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		}
 	}
 	if (!_dl_debug_nofixups)
-#endif
 		*got_addr = new_addr;
 
 	return (unsigned long)new_addr;
@@ -132,14 +130,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 				    strtab + symtab[symtab_index].st_name);
 
 		if (unlikely(res < 0)) {
-			int reloc_type = ELF_R_TYPE(rpnt->r_info);
-
-			_dl_dprintf(2, "can't handle reloc type "
-#if defined (__SUPPORT_LD_DEBUG__)
-				    "%s\n", _dl_reltypes(reloc_type));
-#else
-				    "%x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		} else if (unlikely(res > 0)) {
 			_dl_dprintf(2, "can't resolve symbol\n");
@@ -163,9 +154,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	struct symbol_ref sym_ref;
 	ElfW(Addr) *reloc_addr;
 	ElfW(Addr) symbol_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	ElfW(Addr) old_val;
-#endif
 
 	reloc_addr = (ElfW(Addr)*)(tpnt->loadaddr + (unsigned long)rpnt->r_offset);
 	reloc_type = ELF_R_TYPE(rpnt->r_info);
@@ -202,13 +191,11 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	}
 
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (reloc_addr) {
 		old_val = *reloc_addr;
 	} else {
 		old_val = 0;
 	}
-#endif
 
 	switch (reloc_type) {
 		case R_MICROBLAZE_NONE:
@@ -243,33 +230,25 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 
 		case R_MICROBLAZE_COPY:
 			if (symbol_addr) {
-#if defined (__SUPPORT_LD_DEBUG__)
 				if (_dl_debug_move)
-					_dl_dprintf(_dl_debug_file,
-						    "\t%s move %d bytes from %x to %x\n",
+					_dl_debug_dprint("\t%s move %d bytes from %x to %x\n",
 						    symname, sym_ref.sym->st_size,
 						    symbol_addr, reloc_addr);
-#endif
 
 				_dl_memcpy((char *)reloc_addr,
 					   (char *)symbol_addr,
 					   sym_ref.sym->st_size);
-			}
-#if defined (__SUPPORT_LD_DEBUG__)
-			else
-				_dl_dprintf(_dl_debug_file, "no symbol_addr to copy !?\n");
-#endif
+			} else
+				_dl_debug_dprint("no symbol_addr to copy !?\n");
 			break;
 
 		default:
 			return -1;	/* Calls _dl_exit(1). */
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
@@ -281,9 +260,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	int reloc_type;
 	int symtab_index;
 	ElfW(Addr) *reloc_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	ElfW(Addr) old_val;
-#endif
 
 	(void)scope;
 	symtab_index = ELF_R_SYM(rpnt->r_info);
@@ -292,9 +269,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	reloc_addr = (ElfW(Addr)*)(tpnt->loadaddr + rpnt->r_offset);
 	reloc_type = ELF_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_MICROBLAZE_NONE:
@@ -306,11 +281,9 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched_lazy: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched_lazy: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
diff --git a/ldso/ldso/mips/elfinterp.c b/ldso/ldso/mips/elfinterp.c
index b748839..fa19dba 100644
--- a/ldso/ldso/mips/elfinterp.c
+++ b/ldso/ldso/mips/elfinterp.c
@@ -67,19 +67,14 @@ unsigned long __dl_runtime_resolve(unsigned long sym_index,
 	instr_addr = (unsigned long) (got + local_gotno + sym_index - gotsym);
 	got_addr = (char **) instr_addr;
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_bindings)
 	{
-		_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+		_dl_debug_dprint("\nresolve function: %s", symname);
 		if (_dl_debug_detail) _dl_dprintf(_dl_debug_file,
 				"\n\tpatched %x ==> %x @ %x\n", *got_addr, new_addr, got_addr);
 	}
-	if (!_dl_debug_nofixups) {
+	if (!_dl_debug_nofixups)
 		*got_addr = (char*)new_addr;
-	}
-#else
-	*got_addr = (char*)new_addr;
-#endif
 
 	return new_addr;
 }
@@ -117,22 +112,17 @@ __dl_runtime_pltresolve(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if ((unsigned long)got_addr < 0x40000000) {
 		if (_dl_debug_bindings) {
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+			_dl_debug_dprint("\nresolve function: %s", symname);
 			if (_dl_debug_detail)
 				_dl_dprintf(_dl_debug_file,
 				            "\n\tpatched: %x ==> %x @ %x",
 				            *got_addr, new_addr, got_addr);
 		}
 	}
-	if (!_dl_debug_nofixups) {
+	if (!_dl_debug_nofixups)
 		*got_addr = new_addr;
-	}
-#else
-	*got_addr = new_addr;
-#endif
 
 	return (unsigned long)new_addr;
 }
@@ -157,9 +147,7 @@ int _dl_parse_relocation_information(struct dyn_elf *xpnt,
 	int reloc_type, symtab_index;
 	struct elf_resolve *tpnt = xpnt->dyn;
 	char *symname = NULL;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val=0;
-#endif
 
 	struct symbol_ref sym_ref = { NULL, NULL };
 	/* Now parse the relocation information */
@@ -181,10 +169,8 @@ int _dl_parse_relocation_information(struct dyn_elf *xpnt,
 		debug_sym(symtab,strtab,symtab_index);
 		debug_reloc(symtab,strtab,rpnt);
 		symname = strtab + symtab[symtab_index].st_name;
-#if defined (__SUPPORT_LD_DEBUG__)
 		if (reloc_addr)
 			old_val = *reloc_addr;
-#endif
 
 		if (reloc_type == R_MIPS_JUMP_SLOT || reloc_type == R_MIPS_COPY) {
 			symbol_addr = (unsigned long)_dl_find_hash(symname,
@@ -238,20 +224,16 @@ int _dl_parse_relocation_information(struct dyn_elf *xpnt,
 					case R_MIPS_TLS_DTPMOD32:
 						if (tls_tpnt)
 							*(ElfW(Word) *)reloc_addr = tls_tpnt->l_tls_modid;
-#ifdef __SUPPORT_LD_DEBUG__
-						_dl_dprintf(2, "TLS_DTPMOD : %s, %d, %d\n",
+						_dl_debug_dprint("TLS_DTPMOD : %s, %d, %d\n",
 							symname, old_val, *((unsigned int *)reloc_addr));
-#endif
 						break;
 
 					case R_MIPS_TLS_DTPREL64:
 					case R_MIPS_TLS_DTPREL32:
 						*(ElfW(Word) *)reloc_addr +=
 							TLS_DTPREL_VALUE (symbol_addr);
-#ifdef __SUPPORT_LD_DEBUG__
-						_dl_dprintf(2, "TLS_DTPREL : %s, %x, %x\n",
+						_dl_debug_dprint("TLS_DTPREL : %s, %x, %x\n",
 							symname, old_val, *((unsigned int *)reloc_addr));
-#endif
 						break;
 
 					case R_MIPS_TLS_TPREL32:
@@ -259,10 +241,8 @@ int _dl_parse_relocation_information(struct dyn_elf *xpnt,
 						CHECK_STATIC_TLS((struct link_map *)tls_tpnt);
 						*(ElfW(Word) *)reloc_addr +=
 							TLS_TPREL_VALUE (tls_tpnt, symbol_addr);
-#ifdef __SUPPORT_LD_DEBUG__
-						_dl_dprintf(2, "TLS_TPREL  : %s, %x, %x\n",
+						_dl_debug_dprint("TLS_TPREL  : %s, %x, %x\n",
 							symname, old_val, *((unsigned int *)reloc_addr));
-#endif
 						break;
 				}
 
@@ -293,13 +273,11 @@ int _dl_parse_relocation_information(struct dyn_elf *xpnt,
 			break;
 		case R_MIPS_COPY:
 			if (symbol_addr) {
-#if defined (__SUPPORT_LD_DEBUG__)
 				if (_dl_debug_move)
 					_dl_dprintf(_dl_debug_file,
 						    "\n%s move %d bytes from %x to %x",
 						    symname, symtab[symtab_index].st_size,
 						    symbol_addr, reloc_addr);
-#endif
 
 				_dl_memcpy((char *)reloc_addr,
 					   (char *)symbol_addr,
@@ -313,21 +291,17 @@ int _dl_parse_relocation_information(struct dyn_elf *xpnt,
 				_dl_dprintf(2, "\n%s: ",_dl_progname);
 
 				if (symtab_index)
-					_dl_dprintf(2, "symbol '%s': ", symname);
+					_dl_dprintf(2, "symbol '%s' in lib '%s': ",
+						symname, tpnt->libname);
 
-#if defined (__SUPPORT_LD_DEBUG__)
-				_dl_dprintf(2, "can't handle reloc type '%s' in lib '%s'\n", _dl_reltypes(reloc_type), tpnt->libname);
-#else
-				_dl_dprintf(2, "can't handle reloc type %x in lib '%s'\n", reloc_type, tpnt->libname);
-#endif
+				_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 				_dl_exit(1);
 			}
 		}
 	}
-#if defined (__SUPPORT_LD_DEBUG__)
+
 	if (_dl_debug_reloc && _dl_debug_detail && reloc_addr)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
-#endif
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
 
 	return 0;
 }
@@ -353,10 +327,9 @@ void _dl_perform_mips_global_got_relocations(struct elf_resolve *tpnt, int lazy)
 		strtab = (char *) tpnt->dynamic_info[DT_STRTAB];
 		i = tpnt->dynamic_info[DT_MIPS_SYMTABNO_IDX] - tpnt->dynamic_info[DT_MIPS_GOTSYM_IDX];
 
-#if defined (__SUPPORT_LD_DEBUG__)
 		if (_dl_debug_reloc)
-			_dl_dprintf(2, "_dl_perform_mips_global_got_relocations for '%s'\n", tpnt->libname);
-#endif
+			_dl_debug_dprint("_dl_perform_mips_global_got_relocations for '%s'\n", tpnt->libname);
+
 		tmp_lazy = lazy && !tpnt->dynamic_info[DT_BIND_NOW];
 		/* Relocate the global GOT entries for the object */
 		while (i--) {
diff --git a/ldso/ldso/powerpc/elfinterp.c b/ldso/ldso/powerpc/elfinterp.c
index 5079130..35dca0f 100644
--- a/ldso/ldso/powerpc/elfinterp.c
+++ b/ldso/ldso/powerpc/elfinterp.c
@@ -132,10 +132,8 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 	/* Address of dump instruction to fix up */
 	reloc_addr = (Elf32_Addr *) (tpnt->loadaddr + this_reloc->r_offset);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tResolving symbol %s %x --> ", symname, (Elf32_Addr)reloc_addr);
-#endif
+		_dl_debug_dprint("\n\tResolving symbol %s %x --> ", symname, (Elf32_Addr)reloc_addr);
 
 	/* Get the address of the GOT entry */
 	finaladdr = (Elf32_Addr) _dl_find_hash(symname,
@@ -145,10 +143,8 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 	finaladdr += this_reloc->r_addend;
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "%x\n", finaladdr);
-#endif
+		_dl_debug_dprint("%x\n", finaladdr);
 	if (tpnt->dynamic_info[DT_PPC_GOT_IDX] != 0) {
 		*reloc_addr = finaladdr;
 	} else {
@@ -193,9 +189,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	struct elf_resolve *tls_tpnt = NULL;
 	unsigned long symbol_addr;
 	char *symname;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 
 	symbol_addr  = tpnt->loadaddr; /* For R_PPC_RELATIVE */
 	reloc_addr   = (Elf32_Addr *)(intptr_t) (symbol_addr + (unsigned long) rpnt->r_offset);
@@ -224,9 +218,8 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 		symbol_addr = sym_ref.sym->st_value;
 		tls_tpnt = tpnt;
 	}
-#if defined (__SUPPORT_LD_DEBUG__)
+
 	old_val = *reloc_addr;
-#endif
 	finaladdr = (Elf32_Addr) (symbol_addr + rpnt->r_addend);
 
 	switch (reloc_type) {
@@ -268,12 +261,10 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 		break;
 	}
 	case R_PPC_COPY:
-#if defined (__SUPPORT_LD_DEBUG__)
 		if (_dl_debug_move)
-			_dl_dprintf(_dl_debug_file,"\n%s move %x bytes from %x to %x",
+			_dl_debug_dprint("\n%s move %x bytes from %x to %x",
 				    symname, sym_ref.sym->st_size,
 				    symbol_addr, reloc_addr);
-#endif
 		_dl_memcpy((char *) reloc_addr, (char *) finaladdr, sym_ref.sym->st_size);
 		goto out_nocode; /* No code code modified */
 	case R_PPC_ADDR16_HA:
@@ -317,9 +308,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 		goto out_nocode; /* No code code modified */
 	default:
 		_dl_dprintf(2, "%s: can't handle reloc type ", _dl_progname);
-#if defined (__SUPPORT_LD_DEBUG__)
-		_dl_dprintf(2, "%s ", _dl_reltypes(reloc_type));
-#endif
+		_dl_debug_dprint("%s ", _dl_reltypes(reloc_type));
 		if (symtab_index)
 			_dl_dprintf(2, "'%s'\n", symname);
 		return -1;
@@ -331,10 +320,8 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	PPC_ICBI(reloc_addr);
 	PPC_ISYNC;
  out_nocode:
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
-#endif
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
 	return 0;
 }
 
@@ -428,12 +415,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 
 		if (unlikely(res <0))
 		{
-		        int reloc_type = ELF32_R_TYPE(rpnt->r_info);
-#if defined (__SUPPORT_LD_DEBUG__)
-			_dl_dprintf(2, "can't handle reloc type '%s' in lib '%s'\n", _dl_reltypes(reloc_type), tpnt->libname);
-#else
-			_dl_dprintf(2, "can't handle reloc type %x in lib '%s'\n", reloc_type, tpnt->libname);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			return res;
 		}
 		if (unlikely(res >0))
diff --git a/ldso/ldso/sh/elfinterp.c b/ldso/ldso/sh/elfinterp.c
index da55b6a..aaf6207 100644
--- a/ldso/ldso/sh/elfinterp.c
+++ b/ldso/ldso/sh/elfinterp.c
@@ -76,19 +76,15 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if ((unsigned long) got_addr < 0x20000000) {
 		if (_dl_debug_bindings) {
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+			_dl_debug_dprint("\nresolve function: %s", symname);
 			if (_dl_debug_detail) _dl_dprintf(_dl_debug_file,
 					"\n\tpatched %x ==> %x @ %x\n", *got_addr, new_addr, got_addr);
 		}
 	}
 	if (!_dl_debug_nofixups)
 		*got_addr = new_addr;
-#else
-	*got_addr = new_addr;
-#endif
 
 	return (unsigned long) new_addr;
 }
@@ -130,12 +126,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			_dl_dprintf(2, "symbol '%s': ", strtab + symtab[symtab_index].st_name);
 
 		if (unlikely(res < 0)) {
-			int reloc_type = ELF32_R_TYPE(rpnt->r_info);
-#if defined (__SUPPORT_LD_DEBUG__)
-			_dl_dprintf(2, "can't handle reloc type %s\n ", _dl_reltypes(reloc_type));
-#else
-			_dl_dprintf(2, "can't handle reloc type %x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		}
 		if (unlikely(res > 0)) {
@@ -156,9 +147,7 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	char *symname;
 	unsigned long *reloc_addr;
 	unsigned long symbol_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 
 	struct elf_resolve *tls_tpnt = NULL;
 	struct symbol_ref sym_ref;
@@ -196,9 +185,7 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		tls_tpnt = sym_ref.tpnt;
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 #if defined USE_TLS && USE_TLS
 	/* In case of a TLS reloc, tls_tpnt NULL means we have an 'anonymous'
@@ -212,12 +199,10 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			break;
 		case R_SH_COPY:
 			if (symbol_addr) {
-#if defined (__SUPPORT_LD_DEBUG__)
 				if (_dl_debug_move)
-					_dl_dprintf(_dl_debug_file,"\n%s move %x bytes from %x to %x",
+					_dl_debug_dprint("\n%s move %x bytes from %x to %x",
 						    symname, symtab[symtab_index].st_size,
 						    symbol_addr, reloc_addr);
-#endif
 				_dl_memcpy((char *) reloc_addr, (char *) symbol_addr, symtab[symtab_index].st_size);
 			}
 			return 0; /* no further LD_DEBUG messages for copy relocs */
@@ -249,10 +234,8 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 
 			return -1;
 	}
-#if defined (__SUPPORT_LD_DEBUG__)
-	    if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
-#endif
+	if (_dl_debug_reloc && _dl_debug_detail)
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
 
 	return 0;
 }
@@ -264,9 +247,7 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 {
 	int reloc_type;
 	unsigned long *reloc_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	unsigned long old_val;
-#endif
 	(void)scope;
 	(void)symtab;
 	(void)strtab;
@@ -274,9 +255,8 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	reloc_addr = (unsigned long *)(intptr_t) (tpnt->loadaddr + (unsigned long) rpnt->r_offset);
 	reloc_type = ELF32_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
+
 	switch (reloc_type) {
 		case R_SH_NONE:
 			break;
@@ -286,10 +266,10 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		default:
 			return -1;
 	}
-#if defined (__SUPPORT_LD_DEBUG__)
+
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
-#endif
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
+
 	return 0;
 
 }
diff --git a/ldso/ldso/sh64/elfinterp.c b/ldso/ldso/sh64/elfinterp.c
index 0d16f6b..fb9bb42 100644
--- a/ldso/ldso/sh64/elfinterp.c
+++ b/ldso/ldso/sh64/elfinterp.c
@@ -80,10 +80,9 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-#ifdef __SUPPORT_LD_DEBUG__
 	if ((unsigned long)got_addr < 0x20000000) {
 		if (_dl_debug_bindings) {
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s",
+			_dl_debug_dprint("\nresolve function: %s",
 				    symname);
 
 			if (_dl_debug_detail)
@@ -92,12 +91,8 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 					    *got_addr, new_addr, got_addr);
 		}
 	}
-
 	if (!_dl_debug_nofixups)
 		*got_addr = new_addr;
-#else
-	*got_addr = new_addr;
-#endif
 
 	return (unsigned long)new_addr;
 }
@@ -140,16 +135,7 @@ static int _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 				strtab + symtab[symtab_index].st_name);
 
 		if (unlikely(res < 0)) {
-		        int reloc_type = ELF32_R_TYPE(rpnt->r_info);
-
-			_dl_dprintf(2, "can't handle reloc type "
-#ifdef __SUPPORT_LD_DEBUG__
-					"%s\n", _dl_reltypes(reloc_type)
-#else
-					"%x\n", reloc_type
-#endif
-			);
-
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		}
 		if (unlikely(res > 0)) {
@@ -170,9 +156,7 @@ static int _dl_do_reloc(struct elf_resolve *tpnt,struct r_scope_elem *scope,
 	char *symname;
 	unsigned long *reloc_addr;
 	unsigned long symbol_addr;
-#ifdef __SUPPORT_LD_DEBUG__
 	unsigned long old_val;
-#endif
 	struct symbol_ref sym_ref;
 
 	reloc_type   = ELF32_R_TYPE(rpnt->r_info);
@@ -209,9 +193,7 @@ static int _dl_do_reloc(struct elf_resolve *tpnt,struct r_scope_elem *scope,
 		}
 	}
 
-#ifdef __SUPPORT_LD_DEBUG__
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 	case R_SH_NONE:
@@ -285,11 +267,9 @@ static int _dl_do_reloc(struct elf_resolve *tpnt,struct r_scope_elem *scope,
 		return -1; /*call _dl_exit(1) */
 	}
 
-#ifdef __SUPPORT_LD_DEBUG__
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
@@ -299,9 +279,7 @@ static int _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scop
 {
 	int reloc_type, symtab_index, lsb;
 	unsigned long *reloc_addr;
-#ifdef __SUPPORT_LD_DEBUG__
 	unsigned long old_val;
-#endif
 
 	reloc_type   = ELF32_R_TYPE(rpnt->r_info);
 	symtab_index = ELF32_R_SYM(rpnt->r_info);
@@ -309,9 +287,7 @@ static int _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scop
 	reloc_addr   = (unsigned long *)(intptr_t)
 		(tpnt->loadaddr + (unsigned long)rpnt->r_offset);
 
-#ifdef __SUPPORT_LD_DEBUG__
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 	case R_SH_NONE:
@@ -323,11 +299,9 @@ static int _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scop
 		return -1; /*call _dl_exit(1) */
 	}
 
-#ifdef __SUPPORT_LD_DEBUG__
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
diff --git a/ldso/ldso/sparc/elfinterp.c b/ldso/ldso/sparc/elfinterp.c
index e3f0e47..a8a3101 100644
--- a/ldso/ldso/sparc/elfinterp.c
+++ b/ldso/ldso/sparc/elfinterp.c
@@ -86,19 +86,16 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if ((unsigned long)got_addr < 0x40000000) {
 		if (_dl_debug_bindings) {
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+			_dl_debug_dprint("\nresolve function: %s", symname);
 			if (_dl_debug_detail)
 				_dl_dprintf(_dl_debug_file,
 				            "\tpatched: %x ==> %x @ %x\n",
 				            *got_addr, new_addr, got_addr);
 		}
 	}
-	if (!_dl_debug_nofixups)
-#endif
-	{
+	if (!_dl_debug_nofixups) {
 		got_addr[1] = (char *) (OPCODE_SETHI_G1 | (((unsigned int) new_addr >> 10) & 0x3fffff));
 		got_addr[2] = (char *) (OPCODE_JMP_G1 | ((unsigned int) new_addr & 0x3ff));
 	}
@@ -145,14 +142,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 				    strtab + symtab[symtab_index].st_name);
 
 		if (unlikely(res < 0)) {
-			int reloc_type = ELF_R_TYPE(rpnt->r_info);
-
-			_dl_dprintf(2, "can't handle reloc type "
-#if defined (__SUPPORT_LD_DEBUG__)
-				    "%s\n", _dl_reltypes(reloc_type));
-#else
-				    "%x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		} else if (unlikely(res > 0)) {
 			_dl_dprintf(2, "can't resolve symbol\n");
@@ -174,9 +164,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	struct symbol_ref sym_ref;
 	ElfW(Addr) *reloc_addr;
 	ElfW(Addr) symbol_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	ElfW(Addr) old_val;
-#endif
 
 	reloc_addr = (ElfW(Addr)*)(tpnt->loadaddr + (unsigned long)rpnt->r_offset);
 	reloc_type = ELF_R_TYPE(rpnt->r_info);
@@ -213,9 +201,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		tls_tpnt = tpnt;
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	symbol_addr += rpnt->r_addend;	/* Assume copy relocs have zero addend.  */
 
@@ -264,19 +250,17 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 
 		case R_SPARC_COPY:
 			if (symbol_addr) {
-#if defined (__SUPPORT_LD_DEBUG__)
 				if (_dl_debug_move)
 					_dl_dprintf(_dl_debug_file,
 						    "\t%s move %d bytes from %x to %x\n",
 						    symname, sym_ref.sym->st_size,
 						    symbol_addr, reloc_addr);
-#endif
 
 				_dl_memcpy((char *)reloc_addr,
 					   (char *)symbol_addr,
 					   sym_ref.sym->st_size);
 			} else
-				_dl_dprintf(_dl_debug_file, "no symbol_addr to copy !?\n");
+				_dl_debug_dprint("no symbol_addr to copy !?\n");
 			break;
 #if defined USE_TLS && USE_TLS
 		case R_SPARC_TLS_DTPMOD32:
@@ -302,11 +286,9 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			return -1;	/* Calls _dl_exit(1). */
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
@@ -320,9 +302,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	int reloc_type;
 	int symtab_index;
 	ElfW(Addr) *reloc_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	ElfW(Addr) old_val;
-#endif
 
 	(void)scope;
 	symtab_index = ELF_R_SYM(rpnt->r_info);
@@ -331,9 +311,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	reloc_addr = (ElfW(Addr)*)(tpnt->loadaddr + rpnt->r_offset);
 	reloc_type = ELF_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_SPARC_NONE:
@@ -344,11 +322,9 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched_lazy: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched_lazy: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
diff --git a/ldso/ldso/x86_64/elfinterp.c b/ldso/ldso/x86_64/elfinterp.c
index 75666a7..48c9778 100644
--- a/ldso/ldso/x86_64/elfinterp.c
+++ b/ldso/ldso/x86_64/elfinterp.c
@@ -76,18 +76,15 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if ((unsigned long)got_addr < 0x40000000) {
 		if (_dl_debug_bindings) {
-			_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+			_dl_debug_dprint("\nresolve function: %s", symname);
 			if (_dl_debug_detail)
-				_dl_dprintf(_dl_debug_file,
-				            "\tpatched: %x ==> %x @ %x\n",
-				            *got_addr, new_addr, got_addr);
+				_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n",
+					*got_addr, new_addr, got_addr);
 		}
 	}
 	if (!_dl_debug_nofixups)
-#endif
 		*got_addr = new_addr;
 
 	return (unsigned long)new_addr;
@@ -132,14 +129,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 				    strtab + symtab[symtab_index].st_name);
 
 		if (unlikely(res < 0)) {
-			int reloc_type = ELF_R_TYPE(rpnt->r_info);
-
-			_dl_dprintf(2, "can't handle reloc type "
-#if defined (__SUPPORT_LD_DEBUG__)
-				    "%s\n", _dl_reltypes(reloc_type));
-#else
-				    "%x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit(-res);
 		} else if (unlikely(res > 0)) {
 			_dl_dprintf(2, "can't resolve symbol\n");
@@ -163,9 +153,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	struct symbol_ref sym_ref;
 	ElfW(Addr) *reloc_addr;
 	ElfW(Addr) symbol_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	ElfW(Addr) old_val;
-#endif
 
 	reloc_addr = (ElfW(Addr)*)(tpnt->loadaddr + (unsigned long)rpnt->r_offset);
 	reloc_type = ELF_R_TYPE(rpnt->r_info);
@@ -205,9 +193,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 #endif
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_X86_64_NONE:
@@ -256,33 +242,25 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 
 		case R_X86_64_COPY:
 			if (symbol_addr) {
-#if defined (__SUPPORT_LD_DEBUG__)
 				if (_dl_debug_move)
-					_dl_dprintf(_dl_debug_file,
-						    "\t%s move %d bytes from %x to %x\n",
+					_dl_debug_dprint("\t%s move %d bytes from %x to %x\n",
 						    symname, sym_ref.sym->st_size,
 						    symbol_addr, reloc_addr);
-#endif
 
 				_dl_memcpy((char *)reloc_addr,
 					   (char *)symbol_addr,
 					   sym_ref.sym->st_size);
-			}
-#if defined (__SUPPORT_LD_DEBUG__)
-			else
-				_dl_dprintf(_dl_debug_file, "no symbol_addr to copy !?\n");
-#endif
+			} else
+				_dl_debug_dprint("no symbol_addr to copy !?\n");
 			break;
 
 		default:
 			return -1;	/* Calls _dl_exit(1). */
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
@@ -293,9 +271,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 {
 	int reloc_type;
 	ElfW(Addr) *reloc_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	ElfW(Addr) old_val;
-#endif
 
 	(void)scope;
 	(void)strtab;
@@ -303,9 +279,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	reloc_addr = (ElfW(Addr)*)(tpnt->loadaddr + rpnt->r_offset);
 	reloc_type = ELF_R_TYPE(rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 		case R_X86_64_NONE:
@@ -317,11 +291,9 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
 			_dl_exit(1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched_lazy: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched_lazy: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
diff --git a/ldso/ldso/xtensa/elfinterp.c b/ldso/ldso/xtensa/elfinterp.c
index 23d1eb1..9af3976 100644
--- a/ldso/ldso/xtensa/elfinterp.c
+++ b/ldso/ldso/xtensa/elfinterp.c
@@ -64,7 +64,6 @@ _dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry)
 		_dl_exit (1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_bindings) {
 		_dl_dprintf (_dl_debug_file, "\nresolve function: %s", symname);
 		if (_dl_debug_detail)
@@ -73,9 +72,6 @@ _dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry)
 	}
 	if (!_dl_debug_nofixups)
 		*got_addr = new_addr;
-#else
-	*got_addr = new_addr;
-#endif
 
 	return (unsigned long) new_addr;
 }
@@ -120,13 +116,7 @@ _dl_parse (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 						 strtab + symtab[symtab_index].st_name);
 
 		if (unlikely (res < 0)) {
-			int reloc_type = ELF32_R_TYPE (rpnt->r_info);
-#if defined (__SUPPORT_LD_DEBUG__)
-			_dl_dprintf (2, "can't handle reloc type %s\n",
-						 _dl_reltypes (reloc_type));
-#else
-			_dl_dprintf (2, "can't handle reloc type %x\n", reloc_type);
-#endif
+			_dl_dprintf_unhandled_reltype(ELF_R_TYPE(rpnt->r_info));
 			_dl_exit (-res);
 		}
 		if (unlikely (res > 0)) {
@@ -149,9 +139,7 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	struct symbol_ref sym_ref;
 	Elf32_Addr *reloc_addr;
 	Elf32_Addr symbol_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	Elf32_Addr old_val;
-#endif
 
 	reloc_addr = (Elf32_Addr *) (tpnt->loadaddr + rpnt->r_offset);
 	reloc_type = ELF32_R_TYPE (rpnt->r_info);
@@ -183,9 +171,7 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		}
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 	case R_XTENSA_NONE:
@@ -216,11 +202,10 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 	default:
 		return -1; /* Calls _dl_exit(1).  */
 	}
-#if defined (__SUPPORT_LD_DEBUG__)
+
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf (_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
+		_dl_debug_dprint("\tpatched: %x ==> %x @ %x\n",
 					 old_val, *reloc_addr, reloc_addr);
-#endif
 
 	return 0;
 }
@@ -232,16 +217,12 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 {
 	int reloc_type;
 	Elf32_Addr *reloc_addr;
-#if defined (__SUPPORT_LD_DEBUG__)
 	Elf32_Addr old_val;
-#endif
 
 	reloc_addr = (Elf32_Addr *) (tpnt->loadaddr + rpnt->r_offset);
 	reloc_type = ELF32_R_TYPE (rpnt->r_info);
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	old_val = *reloc_addr;
-#endif
 
 	switch (reloc_type) {
 	case R_XTENSA_JMP_SLOT:
@@ -255,11 +236,10 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
 		_dl_exit (1);
 	}
 
-#if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 		_dl_dprintf (_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
 					 old_val, *reloc_addr, reloc_addr);
-#endif
+
 	return 0;
 
 }
diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
index eb879d2..69bb008 100644
--- a/ldso/libdl/libdl.c
+++ b/ldso/libdl/libdl.c
@@ -127,15 +127,11 @@ size_t _dl_tls_static_size = 2048;
 #include "../ldso/dl-elf.c"
 #endif /* SHARED */
 
-#ifdef __SUPPORT_LD_DEBUG__
-# define _dl_if_debug_print(fmt, args...) \
+#define _dl_if_debug_print(fmt, args...) \
 	do { \
-	if (_dl_debug) \
-		fprintf(stderr, "%s():%i: " fmt, __func__, __LINE__, ## args); \
+		if (__SUPPORT_LD_DEBUG_VAL__ && _dl_debug) \
+			fprintf(stderr, "%s():%i: " fmt, __func__, __LINE__, ## args); \
 	} while (0)
-#else
-# define _dl_if_debug_print(fmt, args...)
-#endif
 
 static int do_dlclose(void *, int need_fini);
 
@@ -519,7 +515,6 @@ void *dlopen(const char *libname, int flag)
 			}
 		}
 	}
-#ifdef __SUPPORT_LD_DEBUG__
 	if (_dl_debug) {
 		fprintf(stderr, "\nINIT/FINI order and dependencies:\n");
 		for (i = 0; i < nlist; i++) {
@@ -530,7 +525,6 @@ void *dlopen(const char *libname, int flag)
 			fprintf(stderr, "\n");
 		}
 	}
-#endif
 
 	_dl_if_debug_print("Beginning dlopen relocation fixups\n");
 	/*
-- 
1.7.6.1



More information about the uClibc mailing list