add shared libraries
diff --git a/extensions/ebt_ip.c b/extensions/ebt_ip.c
index f93b8b9..6d9233e 100644
--- a/extensions/ebt_ip.c
+++ b/extensions/ebt_ip.c
@@ -74,8 +74,8 @@
 	else if (port >= 0 || port <= 0xFFFF) {
 		return port;
 	}
-	print_error("Problem with specified %s port '%s'", 
-		    protocol?protocol:"", name);
+	ebt_print_error("Problem with specified %s port '%s'", 
+			protocol?protocol:"", name);
 	return 0; /* never reached */
 }
 
@@ -95,7 +95,7 @@
 		ports[1] = cp[0] ? parse_port(protocol, cp) : 0xFFFF;
 		
 		if (ports[0] > ports[1])
-			print_error("Invalid portrange (min > max)");
+			ebt_print_error("Invalid portrange (min > max)");
 	}
 	free(buffer);
 }
@@ -159,7 +159,7 @@
 		}
 
 		if (optind > argc)
-			print_error("Missing IP address argument");
+			ebt_print_error("Missing IP address argument");
 		if (c == IP_SOURCE)
 			ebt_parse_ip_address(argv[optind - 1], &ipinfo->saddr,
 			   &ipinfo->smsk);
@@ -182,7 +182,7 @@
 				ipinfo->invflags |= EBT_IP_DPORT;
 		}
 		if (optind > argc)
-			print_error("Missing port argument");
+			ebt_print_error("Missing port argument");
 		if (c == IP_SPORT)
 			parse_port_range(NULL, argv[optind - 1], ipinfo->sport);
 		else
@@ -195,10 +195,10 @@
 			ipinfo->invflags |= EBT_IP_TOS;
 
 		if (optind > argc)
-			print_error("Missing IP tos argument");
+			ebt_print_error("Missing IP tos argument");
 		i = strtol(argv[optind - 1], &end, 16);
 		if (i < 0 || i > 255 || *end != '\0')
-			print_error("Problem with specified IP tos");
+			ebt_print_error("Problem with specified IP tos");
 		ipinfo->tos = i;
 		ipinfo->bitmask |= EBT_IP_TOS;
 		break;
@@ -208,14 +208,14 @@
 		if (ebt_check_inverse(optarg))
 			ipinfo->invflags |= EBT_IP_PROTO;
 		if (optind > argc)
-			print_error("Missing IP protocol argument");
+			ebt_print_error("Missing IP protocol argument");
 		(unsigned char) i = strtoul(argv[optind - 1], &end, 10);
 		if (*end != '\0') {
 			struct protoent *pe;
 
 			pe = getprotobyname(argv[optind - 1]);
 			if (pe == NULL)
-				print_error
+				ebt_print_error
 				    ("Unknown specified IP protocol - %s",
 				     argv[optind - 1]);
 			ipinfo->protocol = pe->p_proto;
@@ -237,7 +237,7 @@
  	struct ebt_ip_info *ipinfo = (struct ebt_ip_info *)match->data;
 
 	if (entry->ethproto != ETH_P_IP || entry->invflags & EBT_IPROTO)
-		print_error("For IP filtering the protocol must be "
+		ebt_print_error("For IP filtering the protocol must be "
 		            "specified as IPv4");
 
 	if (ipinfo->bitmask & (EBT_IP_SPORT|EBT_IP_DPORT) &&
@@ -245,8 +245,8 @@
 		ipinfo->invflags & EBT_IP_PROTO ||
 		(ipinfo->protocol!=IPPROTO_TCP && 
 			ipinfo->protocol!=IPPROTO_UDP)))
-		print_error("For port filtering the IP protocol must be "
-		            "either 6 (tcp) or 17 (udp)");
+		ebt_print_error("For port filtering the IP protocol must be "
+				"either 6 (tcp) or 17 (udp)");
 }
 
 static void print(const struct ebt_u_entry *entry,
@@ -364,8 +364,7 @@
 	.extra_ops	= opts,
 };
 
-static void _init(void) __attribute((constructor));
-static void _init(void)
+void _init(void)
 {
 	ebt_register_match(&ip_match);
 }