Our RHEL 3 systems have a libusb installed, but it doesn't have any usb_get_string symbols. Check for the function that is used - usb_get_string_simple. cupsTempFile2 returns a pointer and NULL on error, the HP compilers errored comparing a pointer to <0 IRIX cc wants initializers to be constants. Index: config-scripts/cups-common.m4 =================================================================== --- config-scripts/cups-common.m4.orig 2011-01-06 22:27:54.000000000 +0000 +++ config-scripts/cups-common.m4 2011-01-11 03:22:55.818583630 +0000 @@ -207,7 +226,7 @@ fi if test $check_libusb = yes; then - AC_CHECK_LIB(usb, usb_init,[ + AC_CHECK_LIB(usb, usb_get_string_simple,[ AC_CHECK_HEADER(usb.h, AC_DEFINE(HAVE_USB_H) LIBUSB="-lusb")]) Index: systemv/lpadmin.c =================================================================== --- systemv/lpadmin.c.orig 2010-08-13 01:34:04.000000000 +0000 +++ systemv/lpadmin.c 2011-01-10 21:47:11.397588001 +0000 @@ -1240,7 +1240,7 @@ ppdMarkDefaults(ppd); cupsMarkOptions(ppd, num_options, options); - if ((out = cupsTempFile2(tempfile, sizeof(tempfile))) < 0) + if ((out = cupsTempFile2(tempfile, sizeof(tempfile))) == NULL) { _cupsLangPrintError(_("ERROR: Unable to create temporary file")); ippDelete(request); Index: scheduler/ipp.c =================================================================== --- scheduler/ipp.c.orig 2010-10-06 20:07:44.000000000 +0000 +++ scheduler/ipp.c 2011-01-11 03:22:07.374292099 +0000 @@ -5001,7 +5001,8 @@ case IPP_TAG_ENUM : if (!strncmp(s, "time-at-", 8)) { - struct timeval tv = { attr->values[i].integer, 0 }; + struct timeval tv = { 0, 0 }; + tv.tv_sec = attr->values[i].integer; cupsFilePuts(out, cupsdGetDateTime(&tv, CUPSD_TIME_STANDARD)); } else