Fix build with llvm 22.

Index: scan/sane/orblite.c
--- scan/sane/orblite.c.orig
+++ scan/sane/orblite.c
@@ -14,6 +14,8 @@
  extern "C" {
 #endif
 
+#include <dlfcn.h> /* dlclose */
+
 #include "sane.h"           /* SANE API */
 #define DEBUG_NOT_STATIC
 #undef NDEBUG
@@ -63,28 +65,28 @@ SANE_Option_Descriptor	DefaultOrbOptions[] = {
 		SANE_NAME_SCAN_TL_X, SANE_TITLE_SCAN_TL_X, SANE_DESC_SCAN_TL_X,  // name, title, desc
 		SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
 		SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT,      // cap(ability)
-		SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeLeft  // constraint_type, constraint
+		SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeLeft  // constraint_type, constraint
 	},
 
 	{
 		SANE_NAME_SCAN_TL_Y, SANE_TITLE_SCAN_TL_Y, SANE_DESC_SCAN_TL_Y,  // name, title, desc
 		SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
 		SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT,      // cap(ability)
-		SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeTop  // constraint_type, constraint
+		SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeTop  // constraint_type, constraint
 	},
   
 	{
 		SANE_NAME_SCAN_BR_X, SANE_TITLE_SCAN_BR_X, SANE_DESC_SCAN_BR_X,  // name, title, desc
 		SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
 		SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT,      // cap(ability)
-		SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeRight  // constraint_type, constraint
+		SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeRight  // constraint_type, constraint
 	},
 
 	{
 		SANE_NAME_SCAN_BR_Y, SANE_TITLE_SCAN_BR_Y, SANE_DESC_SCAN_BR_Y,  // name, title, desc
 		SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
 		SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT,      // cap(ability)
-		SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeBottom  // constraint_type, constraint
+		SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeBottom  // constraint_type, constraint
 	},
    
 	// optResolution,                                       // resolution group  
@@ -92,7 +94,7 @@ SANE_Option_Descriptor	DefaultOrbOptions[] = {
 		SANE_NAME_SCAN_RESOLUTION, SANE_TITLE_SCAN_RESOLUTION, SANE_DESC_SCAN_RESOLUTION, // name, title, desc
 		SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word),  // type, unit, size,
 		SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT,      // cap(ability)
-		SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
+		SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
 	},
 
 	// optMode,                                            // color/depth group
@@ -100,7 +102,7 @@ SANE_Option_Descriptor	DefaultOrbOptions[] = {
 		SANE_NAME_SCAN_MODE, SANE_TITLE_SCAN_MODE, SANE_DESC_SCAN_MODE, // name, title, desc
 		SANE_TYPE_STRING, SANE_UNIT_NONE, 256,  // type, unit, size,
 		SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT,      // cap(ability)
-		SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_modes   // constraint type, constraint
+		SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_modes   // constraint type, constraint
 	},
  
 	// optSource, 
@@ -108,7 +110,7 @@ SANE_Option_Descriptor	DefaultOrbOptions[] = {
 		SANE_NAME_SCAN_SOURCE, SANE_TITLE_SCAN_SOURCE, SANE_DESC_SCAN_SOURCE, // name, title, desc
 		SANE_TYPE_STRING, SANE_UNIT_NONE, 256,  // type, unit, size,
 		SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT,      // cap(ability)
-		SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_sources   // constraint type, constraint
+		SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_sources   // constraint type, constraint
 	},
  
 	// optPaperSize, 
@@ -116,7 +118,7 @@ SANE_Option_Descriptor	DefaultOrbOptions[] = {
 		SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
 		SANE_TYPE_STRING, SANE_UNIT_NONE, 256,  // type, unit, size,
 		SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT,      // cap(ability)
-		SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_paper_sizes   // constraint type, constraint
+		SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_paper_sizes   // constraint type, constraint
 	},
  
 	// optPaperSize, 
@@ -124,7 +126,7 @@ SANE_Option_Descriptor	DefaultOrbOptions[] = {
 		SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
 		SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word),  // type, unit, size,
 		SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT,      // cap(ability)
-		SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
+		SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
 	},
 #ifdef NOTDEF
 // default template
@@ -273,6 +275,7 @@ orblite_open (SANE_String_Const devicename, SANE_Handl
 	SANE_Auth_Callback authorize;
 	const SANE_Device *** device_list;
 	SANE_Bool local_only;
+	void * temp_handle;
 	
 	
 	// Allocate handle, set all handle values to zero
@@ -304,7 +307,9 @@ orblite_open (SANE_String_Const devicename, SANE_Handl
 	if (stat != SANE_STATUS_GOOD)
 		return stat;
 
-	stat = g_handle->bb_orblite_open(devicename, &g_handle);
+	temp_handle = g_handle;
+	stat = g_handle->bb_orblite_open(devicename, &temp_handle);
+	g_handle = temp_handle;
 	if (stat == SANE_STATUS_GOOD)
 		*handle = g_handle;
 
