[uClibc-cvs] svn commit: trunk/uClibc/ldso/libdl

vapier at uclibc.org vapier at uclibc.org
Sat Jun 25 08:15:17 UTC 2005


Author: vapier
Date: 2005-06-25 02:15:16 -0600 (Sat, 25 Jun 2005)
New Revision: 10588

Log:
hide the #ifdef debug macros/printfs behind one function to make the code more readable

Modified:
   trunk/uClibc/ldso/libdl/libdl.c


Changeset:
Modified: trunk/uClibc/ldso/libdl/libdl.c
===================================================================
--- trunk/uClibc/ldso/libdl/libdl.c	2005-06-25 08:02:44 UTC (rev 10587)
+++ trunk/uClibc/ldso/libdl/libdl.c	2005-06-25 08:15:16 UTC (rev 10588)
@@ -87,6 +87,16 @@
 #include "../ldso/dl-hash.c"
 #define _dl_trace_loaded_objects    0
 #include "../ldso/dl-elf.c"
+#endif /* __LIBDL_SHARED__ */
+
+#ifdef __SUPPORT_LD_DEBUG__
+# define _dl_if_debug_print(fmt, args...) \
+	do { \
+	if (_dl_debug)
+		fprintf(stderr, "%s():%i: " fmt, __FUNCTION__, __LINE__, ## args); \
+	} while (0)
+#else
+# define _dl_if_debug_print(fmt, args...)
 #endif
 
 static int do_dlclose(void *, int need_fini);
@@ -176,11 +186,8 @@
 		now_flag = RTLD_NOW;
 
 	/* Try to load the specified library */
-#ifdef __SUPPORT_LD_DEBUG__
-	if(_dl_debug)
-		fprintf(stderr, "Trying to dlopen '%s', RTLD_GLOBAL:%d RTLD_NOW:%d\n", (char*)libname,
-			flag & RTLD_GLOBAL ? 1:0,  now_flag & RTLD_NOW ? 1:0);
-#endif
+	_dl_if_debug_print("Trying to dlopen '%s', RTLD_GLOBAL:%d RTLD_NOW:%d\n",
+			(char*)libname, (flag & RTLD_GLOBAL ? 1:0), (now_flag & RTLD_NOW ? 1:0));
 	tpnt = _dl_load_shared_library(0, &rpnt, tfrom, (char*)libname, 0);
 
 	if (tpnt == NULL) {
@@ -196,10 +203,7 @@
 	_dl_handles = dyn_ptr = dyn_chain;
 
 	if (tpnt->usage_count > 1) {
-#ifdef __SUPPORT_LD_DEBUG__
-		if(_dl_debug)
-			fprintf(stderr, "Lib: % already opened\n", libname);
-#endif
+		_dl_if_debug_print("Lib: %s already opened\n", libname);
 		/* see if there is a handle from a earlier dlopen */
 		for (handle = _dl_handles->next_handle; handle; handle = handle->next_handle) {
 			if (handle->dyn == tpnt) {
@@ -216,10 +220,7 @@
 		tpnt->init_flag |= DL_OPENED;
 	}
 
-#ifdef __SUPPORT_LD_DEBUG__
-	if(_dl_debug)
-		fprintf(stderr, "Looking for needed libraries\n");
-#endif
+	_dl_if_debug_print("Looking for needed libraries\n");
 	nlist = 0;
 	runp = alloca(sizeof(*runp));
 	runp->tpnt = tpnt;
@@ -239,11 +240,8 @@
 				lpntstr = (char*) (runp->tpnt->dynamic_info[DT_STRTAB] +
 						dpnt->d_un.d_val);
 				name = _dl_get_last_path_component(lpntstr);
-#ifdef __SUPPORT_LD_DEBUG__
-				if(_dl_debug)
-					fprintf(stderr, "Trying to load '%s', needed by '%s'\n",
-							lpntstr, runp->tpnt->libname);
-#endif
+				_dl_if_debug_print("Trying to load '%s', needed by '%s'\n",
+						lpntstr, runp->tpnt->libname);
 				tpnt1 = _dl_load_shared_library(0, &rpnt, runp->tpnt, lpntstr, 0);
 				if (!tpnt1)
 					goto oops;
@@ -267,11 +265,8 @@
 
 					for (tmp=dep_list; tmp; tmp = tmp->next) {
 						if (tpnt1 == tmp->tpnt) { /* if match => cirular dependency, drop it */
-#ifdef __SUPPORT_LD_DEBUG__
-							if(_dl_debug)
-								fprintf(stderr, "Circular dependency, skipping '%s',\n",
+							_dl_if_debug_print("Circular dependency, skipping '%s',\n",
 									tmp->tpnt->libname);
-#endif
 							tpnt1->usage_count--;
 							break;
 						}
@@ -313,10 +308,7 @@
 			for (; runp; runp = runp->next) {
 				if (runp->tpnt == runp2->tpnt) {
 					struct elf_resolve *here = init_fini_list[k];
-#ifdef __SUPPORT_LD_DEBUG__
-					if(_dl_debug)
-						fprintf(stderr, "Move %s from pos %d to %d in INIT/FINI list.\n", here->libname, k, j);
-#endif
+					_dl_if_debug_print("Move %s from pos %d to %d in INIT/FINI list.\n", here->libname, k, j);
 					for (i = (k - j); i; --i)
 						init_fini_list[i+j] = init_fini_list[i+j-1];
 					init_fini_list[j] = here;
@@ -332,17 +324,14 @@
 		for (i=0;i < nlist;i++) {
 			fprintf(stderr, "lib: %s has deps:\n", init_fini_list[i]->libname);
 			runp = init_fini_list[i]->init_fini;
-			for ( ;runp; runp = runp->next)
+			for (; runp; runp = runp->next)
 				printf(" %s ", runp->tpnt->libname);
 			printf("\n");
 		}
 	}
 #endif
 
-#ifdef __SUPPORT_LD_DEBUG__
-	if(_dl_debug)
-		fprintf(stderr, "Beginning dlopen relocation fixups\n");
-#endif
+	_dl_if_debug_print("Beginning dlopen relocation fixups\n");
 	/*
 	 * OK, now all of the kids are tucked into bed in their proper addresses.
 	 * Now we go through and look for REL and RELA records that indicate fixups
@@ -390,10 +379,8 @@
 			void (*dl_elf_func) (void);
 			dl_elf_func = (void (*)(void)) (tpnt->loadaddr + tpnt->dynamic_info[DT_INIT]);
 			if (dl_elf_func && *dl_elf_func != NULL) {
-#ifdef __SUPPORT_LD_DEBUG__
-				if(_dl_debug)
-					fprintf(stderr, "running ctors for library %s at '%x'\n", tpnt->libname, (unsigned)dl_elf_func);
-#endif
+				_dl_if_debug_print("running ctors for library %s at '%x'\n",
+						tpnt->libname, (unsigned)dl_elf_func);
 				(*dl_elf_func) ();
 			}
 		}
@@ -493,10 +480,8 @@
 		rpnt1->next_handle = rpnt->next_handle;
 	else
 		_dl_handles = rpnt->next_handle;
-#ifdef __SUPPORT_LD_DEBUG__
-	if(_dl_debug)
-		fprintf(stderr, "dlclose: %s, usage count: %d\n", handle->dyn->libname, handle->dyn->usage_count);
-#endif
+	_dl_if_debug_print("%s: usage count: %d\n",
+			handle->dyn->libname, handle->dyn->usage_count);
 	if (handle->dyn->usage_count != 1) {
 		handle->dyn->usage_count--;
 		free(handle);
@@ -510,17 +495,12 @@
 			    !(tpnt->init_flag & FINI_FUNCS_CALLED)) {
 				tpnt->init_flag |= FINI_FUNCS_CALLED;
 				dl_elf_fini = (int (*)(void)) (tpnt->loadaddr + tpnt->dynamic_info[DT_FINI]);
-#ifdef __SUPPORT_LD_DEBUG__
-				if(_dl_debug)
-					fprintf(stderr, "running dtors for library %s at '%x'\n", tpnt->libname, (unsigned)dl_elf_fini);
-#endif
+				_dl_if_debug_print("running dtors for library %s at '%x'\n",
+						tpnt->libname, (unsigned)dl_elf_fini);
 				(*dl_elf_fini) ();
 			}
 
-#ifdef __SUPPORT_LD_DEBUG__
-			if(_dl_debug)
-				fprintf(stderr, "dlclose unmapping: %s\n", tpnt->libname);
-#endif
+			_dl_if_debug_print("unmapping: %s\n", tpnt->libname);
 			end = 0;
 			for (i = 0, ppnt = tpnt->ppnt;
 					i < tpnt->n_phent; ppnt++, i++) {
@@ -544,10 +524,7 @@
 			} else
 				for (run_tpnt = _dl_loaded_modules; run_tpnt; run_tpnt = run_tpnt->next)
 					if (run_tpnt->next == tpnt) {
-#ifdef __SUPPORT_LD_DEBUG__
-						if(_dl_debug)
-							fprintf(stderr, "dlclose removing loaded_modules: %s\n", tpnt->libname);
-#endif
+						_dl_if_debug_print("removing loaded_modules: %s\n", tpnt->libname);
 						run_tpnt->next = run_tpnt->next->next;
 						if (run_tpnt->next)
 							run_tpnt->next->prev = run_tpnt;
@@ -562,10 +539,7 @@
 			} else
 				for (rpnt1 = _dl_symbol_tables; rpnt1->next; rpnt1 = rpnt1->next) {
 					if (rpnt1->next->dyn == tpnt) {
-#ifdef __SUPPORT_LD_DEBUG__
-						if(_dl_debug)
-							fprintf(stderr, "dlclose removing symbol_tables: %s\n", tpnt->libname);
-#endif
+						_dl_if_debug_print("removing symbol_tables: %s\n", tpnt->libname);
 						free(rpnt1->next);
 						rpnt1->next = rpnt1->next->next;
 						if (rpnt1->next)




More information about the uClibc-cvs mailing list