From: <je...@us...> - 2008-06-30 16:57:52
|
Revision: 10613 http://swig.svn.sourceforge.net/swig/?rev=10613&view=rev Author: jezabek Date: 2008-06-30 09:57:49 -0700 (Mon, 30 Jun 2008) Log Message: ----------- Merged revisions 10607-10610 via svnmerge from https://swig.svn.sourceforge.net/svnroot/swig/trunk ........ r10607 | wsfulton | 2008-06-29 02:19:05 +0200 (Sun, 29 Jun 2008) | 1 line fix some potential null pointer usage as reported by CoveriCoverity Prevent ........ r10608 | wsfulton | 2008-06-29 02:50:27 +0200 (Sun, 29 Jun 2008) | 1 line fix potential null pointer usage as reported by Coverity Prevent ........ r10609 | wsfulton | 2008-06-29 11:57:41 +0200 (Sun, 29 Jun 2008) | 1 line make life easier for svn status updates as everyone has different autotool versions installed - use svn:ignore on config.sub and config.guess ........ r10610 | wsfulton | 2008-06-29 12:08:14 +0200 (Sun, 29 Jun 2008) | 1 line make life easier for svn status updates as everyone has different autotool versions installed - use svn:ignore on config.sub and config.guess ........ Modified Paths: -------------- branches/gsoc2008-jezabek/Lib/com/com.swg branches/gsoc2008-jezabek/Source/CParse/templ.c branches/gsoc2008-jezabek/Source/Modules/allegrocl.cxx branches/gsoc2008-jezabek/Source/Modules/com.cxx branches/gsoc2008-jezabek/Source/Modules/csharp.cxx branches/gsoc2008-jezabek/Source/Modules/ocaml.cxx branches/gsoc2008-jezabek/Source/Swig/typesys.c Removed Paths: ------------- branches/gsoc2008-jezabek/Tools/config/config.guess branches/gsoc2008-jezabek/Tools/config/config.sub Property Changed: ---------------- branches/gsoc2008-jezabek/ branches/gsoc2008-jezabek/Tools/config/ Property changes on: branches/gsoc2008-jezabek ___________________________________________________________________ Name: svnmerge-integrated - /trunk:1-10597 + /trunk:1-10612 Modified: branches/gsoc2008-jezabek/Lib/com/com.swg =================================================================== --- branches/gsoc2008-jezabek/Lib/com/com.swg 2008-06-29 22:39:59 UTC (rev 10612) +++ branches/gsoc2008-jezabek/Lib/com/com.swg 2008-06-30 16:57:49 UTC (rev 10613) @@ -26,8 +26,8 @@ SWIGIUnknown *wrapper; /* Call to QueryInterface */ - HRESULT hr = ((HRESULT (SWIGSTDCALL *)(SWIGIUnknown *, REFIID, void **)) - $input->vtable[0])($input, IID_ISWIGWrappedObject, (void **) &wrapper); + HRESULT hr = ((HRESULT (SWIGSTDCALL *)(SWIGIUnknown *, GUID *, void **)) + $input->vtable[0])($input, &IID_ISWIGWrappedObject, (void **) &wrapper); if (hr != S_OK) { /* Argument was not wrapped by SWIG - directors will be needed */ @@ -57,19 +57,27 @@ #include <windows.h> #include <olectl.h> +#include <guiddef.h> +#include <string.h> +#include <memory.h> + typedef void (SWIGSTDCALL *SWIG_funcptr)(void); -struct SWIGWrappedObject { +typedef struct { SWIG_funcptr *vtable; /* vtable for the methods of the wrapped object */ SWIG_funcptr *SWIGWrappedObject_vtable; /* vtable for helper methods */ void *cPtr; /* pointer to the wrapped object */ int cMemOwn; /* memory owned by the proxy? */ long refCount; /* reference count */ -}; +} SWIGWrappedObject; GUID IID_ISWIGWrappedObject = { 0x73738294, 0x8833, 0x1182, { 0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78 }}; +static int SWIGIsEqual(const GUID *a, const GUID *b) { + return memcmp(a, b, sizeof(GUID)) == 0; +} + long SWIGSTDCALL SWIGAddRef1(void *iunk) { /* FIXME: use InterlockedIncrement */ SWIGWrappedObject *obj = (SWIGWrappedObject *) iunk; @@ -98,25 +106,16 @@ return obj->cPtr; } -#if 0 -SWIG_funcptr SWIGWrappedObject_vtable[] = { - 0, /* QueryInterface */ - (SWIG_funcptr) SWIGAddRef2, - (SWIG_funcptr) SWIGRelease2, - (SWIG_funcptr) SWIGGetCPtr -}; -#endif - -struct SWIGClassFactory { +typedef struct { SWIG_funcptr *vtable; SWIG_funcptr newInstance; long refCount; -}; +} SWIGClassFactory; /* For consistent manipulation regardless of C or C++ mode */ -struct SWIGIUnknown { +typedef struct { SWIG_funcptr *vtable; -}; +} SWIGIUnknown; long SWIGSTDCALL SWIGClassFactoryAddRef(SWIGClassFactory *factory) { return ++factory->refCount; @@ -126,8 +125,8 @@ return --factory->refCount; } -HRESULT SWIGSTDCALL SWIGClassFactoryQueryInterface(SWIGClassFactory *factory, REFIID iid, void **ppvObject) { - if (iid == IID_IUnknown || iid == IID_IClassFactory) { +HRESULT SWIGSTDCALL SWIGClassFactoryQueryInterface(SWIGClassFactory *factory, GUID *iid, void **ppvObject) { + if (SWIGIsEqual(iid, &IID_IUnknown) || SWIGIsEqual(iid, &IID_IClassFactory)) { SWIGClassFactoryAddRef(factory); *ppvObject = factory; @@ -137,7 +136,7 @@ } } -HRESULT SWIGSTDCALL SWIGClassFactoryCreateInstance(SWIGClassFactory *factory, IUnknown *punkOuter, REFIID riid, void **ppvObject) +HRESULT SWIGSTDCALL SWIGClassFactoryCreateInstance(SWIGClassFactory *factory, IUnknown *punkOuter, GUID *riid, void **ppvObject) { HRESULT hr; SWIGIUnknown *obj; @@ -158,7 +157,7 @@ /* Add reference */ ((long (SWIGSTDCALL *)(SWIGIUnknown *)) (obj->vtable[1]))(obj); - hr = ((HRESULT (SWIGSTDCALL *)(SWIGIUnknown *, REFIID, void **)) obj->vtable[0])(obj, riid, ppvObject); + hr = ((HRESULT (SWIGSTDCALL *)(SWIGIUnknown *, GUID *, void **)) obj->vtable[0])(obj, riid, ppvObject); /* Release reference */ ((long (SWIGSTDCALL *)(SWIGIUnknown *)) (obj->vtable[2]))(obj); @@ -182,7 +181,7 @@ typedef struct { SWIG_funcptr newInstance; - GUID guid; + GUID *guid; char *guid_string; } SWIGClassDescription_t; @@ -190,17 +189,29 @@ %insert("factory") %{ -STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *_ppv) { +STDAPI DllGetClassObject(REFCLSID _rclsid, REFIID _riid, LPVOID *_ppv) { +#ifdef __cplusplus + const GUID *rclsid = &_rclsid; + const GUID *riid = &_riid; +#else + const GUID *rclsid = _rclsid; + const GUID *riid = _riid; +#endif + int i; SWIGClassFactory **ppv = (SWIGClassFactory **)(void *) _ppv; - if (riid != IID_IUnknown && riid != IID_IClassFactory) + if (!SWIGIsEqual(riid, &IID_IUnknown) && !SWIGIsEqual(riid, &IID_IClassFactory)) return E_NOINTERFACE; for (i = 0; SWIGClassDescription[i].newInstance != NULL; ++i) { - if (rclsid == SWIGClassDescription[i].guid) { + if (SWIGIsEqual(rclsid, SWIGClassDescription[i].guid)) { /* Create a new class factory for the requested CLSID */ +#ifdef __cplusplus *ppv = new SWIGClassFactory; +#else + *ppv = (SWIGClassFactory *) malloc(sizeof(SWIGClassFactory)); +#endif (*ppv)->vtable = SWIGClassFactory_vtable; (*ppv)->newInstance = SWIGClassDescription[i].newInstance; (*ppv)->refCount = 1; @@ -219,166 +230,175 @@ STDAPI DllRegisterServer(void) { char *module_name; + char *typelib_name; int allocated = 256; int used; int i; + HRESULT hres = S_OK; do { +#ifdef __cplusplus module_name = new char[allocated]; - used = GetModuleFileName(GetModuleHandle("simple.dll"), module_name, allocated); + typelib_name = new char[allocated]; +#else + module_name = (char *) malloc(allocated); + typelib_name = (char *) malloc(allocated); +#endif + used = GetModuleFileName(GetModuleHandle("$module.dll"), module_name, allocated); if (used == allocated) { +#ifdef __cplusplus delete module_name; + delete typelib_name; +#else + free(module_name); + free(typelib_name); +#endif allocated *= 2; } } while (used == allocated); + strcpy(typelib_name, module_name); + /* Change .dll to .tlb */ + typelib_name[used - 3] = 't'; + typelib_name[used - 2] = 'l'; + typelib_name[used - 1] = 'b'; + for (i = 0; SWIGClassDescription[i].newInstance != NULL; ++i) { - HKEY hkey_clsid, hkey, hsubkey; + HKEY hkey_clsid = NULL, + hkey = NULL, + hsubkey = NULL; - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, "CLSID", 0, KEY_ALL_ACCESS, &hkey_clsid) != ERROR_SUCCESS) { - delete module_name; - return SELFREG_E_CLASS; + if (hres == S_OK && + RegOpenKeyEx(HKEY_CLASSES_ROOT, "CLSID", 0, KEY_ALL_ACCESS, &hkey_clsid) != ERROR_SUCCESS) { + hres = SELFREG_E_CLASS; } - if (RegCreateKeyEx(hkey_clsid, SWIGClassDescription[i].guid_string, 0, NULL, + if (hres == S_OK && + RegCreateKeyEx(hkey_clsid, SWIGClassDescription[i].guid_string, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkey, NULL) != ERROR_SUCCESS) { - CloseHandle(hkey_clsid); - delete module_name; - return SELFREG_E_CLASS; + hres = SELFREG_E_CLASS; } - if (RegCreateKeyEx(hkey, "InprocServer32", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hsubkey, NULL) != + if (hres == S_OK && + RegCreateKeyEx(hkey, "InprocServer32", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hsubkey, NULL) != ERROR_SUCCESS) { - CloseHandle(hkey_clsid); - CloseHandle(hkey); - delete module_name; - return SELFREG_E_CLASS; + hres = SELFREG_E_CLASS; } - if (RegSetValueEx(hsubkey, "", NULL, REG_SZ, (BYTE *) module_name, used + 1) != ERROR_SUCCESS) { - CloseHandle(hkey_clsid); - CloseHandle(hkey); - CloseHandle(hsubkey); - delete module_name; - return SELFREG_E_CLASS; + if (hres == S_OK && + RegSetValueEx(hsubkey, "", 0, REG_SZ, (BYTE *) module_name, used + 1) != ERROR_SUCCESS) { + hres = SELFREG_E_CLASS; } - if (RegSetValueEx(hsubkey, "ThreadingModel", NULL, REG_SZ, (BYTE *) "Both", 5) != ERROR_SUCCESS) { + if (hres == S_OK && + RegSetValueEx(hsubkey, "ThreadingModel", 0, REG_SZ, (BYTE *) "Both", 5) != ERROR_SUCCESS) { + hres = SELFREG_E_CLASS; + } + + if (hkey_clsid != NULL) CloseHandle(hkey_clsid); + if (hkey != NULL) CloseHandle(hkey); + if (hsubkey != NULL) CloseHandle(hsubkey); - delete module_name; - return SELFREG_E_CLASS; - } - - CloseHandle(hkey_clsid); - CloseHandle(hkey); - CloseHandle(hsubkey); } { - HKEY hkey_typelib, hkey, hkey_version, hkey_helpdir, hkey_flags, hkey_0, hkey_win32; + HKEY hkey_typelib = NULL, + hkey = NULL, + hkey_version = NULL, + hkey_helpdir = NULL, + hkey_flags = NULL, + hkey_0 = NULL, + hkey_win32 = NULL; - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, "TypeLib", 0, KEY_ALL_ACCESS, &hkey_typelib) != ERROR_SUCCESS) { - delete module_name; - return SELFREG_E_CLASS; + if (hres == S_OK && + RegOpenKeyEx(HKEY_CLASSES_ROOT, "TypeLib", 0, KEY_ALL_ACCESS, &hkey_typelib) != ERROR_SUCCESS) { + hres = SELFREG_E_TYPELIB; } - if (RegCreateKeyEx(hkey_typelib, SWIG_tlb_guid_string, 0, NULL, + if (hres == S_OK && + RegCreateKeyEx(hkey_typelib, SWIG_tlb_guid_string, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkey, NULL) != ERROR_SUCCESS) { - CloseHandle(hkey_typelib); - delete module_name; - return SELFREG_E_TYPELIB; + hres = SELFREG_E_TYPELIB; } - if (RegCreateKeyEx(hkey, /* FIXME */ "1.0", 0, NULL, + if (hres == S_OK && + RegCreateKeyEx(hkey, /* FIXME */ "1.0", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkey_version, NULL) != ERROR_SUCCESS) { - CloseHandle(hkey); - CloseHandle(hkey_typelib); - delete module_name; - return SELFREG_E_TYPELIB; + hres = SELFREG_E_TYPELIB; } - if (RegCreateKeyEx(hkey_version, "HELPDIR", 0, NULL, + if (hres == S_OK && + RegSetValueEx(hkey_version, "", 0, REG_SZ, (BYTE *) "$module", strlen("$module")) != ERROR_SUCCESS) { + hres = SELFREG_E_TYPELIB; + } + + if (hres == S_OK && + RegCreateKeyEx(hkey_version, "HELPDIR", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkey_helpdir, NULL) != ERROR_SUCCESS) { - CloseHandle(hkey_version); - CloseHandle(hkey); - CloseHandle(hkey_typelib); - delete module_name; - return SELFREG_E_TYPELIB; + hres = SELFREG_E_TYPELIB; } - if (RegSetValueEx(hkey_helpdir, "", NULL, REG_SZ, (BYTE *) "0", 2) != ERROR_SUCCESS) { - CloseHandle(hkey_helpdir); - CloseHandle(hkey_version); - CloseHandle(hkey); - CloseHandle(hkey_typelib); - delete module_name; - return SELFREG_E_TYPELIB; + if (hres == S_OK && + RegSetValueEx(hkey_helpdir, "", 0, REG_SZ, (BYTE *) "0", 2) != ERROR_SUCCESS) { + hres = SELFREG_E_TYPELIB; } - CloseHandle(hkey_helpdir); - - if (RegCreateKeyEx(hkey_version, "FLAGS", 0, NULL, + if (hres == S_OK && + RegCreateKeyEx(hkey_version, "FLAGS", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkey_flags, NULL) != ERROR_SUCCESS) { - CloseHandle(hkey_version); - CloseHandle(hkey); - CloseHandle(hkey_typelib); - delete module_name; - return SELFREG_E_TYPELIB; + hres = SELFREG_E_TYPELIB; } - if (RegSetValueEx(hkey_flags, "", NULL, REG_SZ, (BYTE *) "0", 2) != ERROR_SUCCESS) { - CloseHandle(hkey_flags); - CloseHandle(hkey_version); - CloseHandle(hkey); - CloseHandle(hkey_typelib); - delete module_name; - return SELFREG_E_TYPELIB; + if (hres == S_OK && + RegSetValueEx(hkey_flags, "", 0, REG_SZ, (BYTE *) "0", 2) != ERROR_SUCCESS) { + hres = SELFREG_E_TYPELIB; } - CloseHandle(hkey_flags); - - if (RegCreateKeyEx(hkey_version, "0", 0, NULL, + if (hres == S_OK && + RegCreateKeyEx(hkey_version, "0", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkey_0, NULL) != ERROR_SUCCESS) { - CloseHandle(hkey_version); - CloseHandle(hkey); - CloseHandle(hkey_typelib); - delete module_name; - return SELFREG_E_TYPELIB; + hres = SELFREG_E_TYPELIB; } - if (RegCreateKeyEx(hkey_0, "win32", 0, NULL, + if (hres == S_OK && + RegCreateKeyEx(hkey_0, "win32", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkey_win32, NULL) != ERROR_SUCCESS) { - CloseHandle(hkey_0); - CloseHandle(hkey_version); - CloseHandle(hkey); - CloseHandle(hkey_typelib); - delete module_name; - return SELFREG_E_TYPELIB; + hres = SELFREG_E_TYPELIB; } - if (RegSetValueEx(hkey_win32, "", NULL, REG_SZ, (BYTE *) module_name, used + 1) != ERROR_SUCCESS) { - CloseHandle(hkey_win32); - CloseHandle(hkey_0); - CloseHandle(hkey_version); - CloseHandle(hkey); - CloseHandle(hkey_typelib); - delete module_name; - return SELFREG_E_TYPELIB; + if (hres == S_OK && + RegSetValueEx(hkey_win32, "", 0, REG_SZ, (BYTE *) typelib_name, used + 1) != ERROR_SUCCESS) { + hres = SELFREG_E_TYPELIB; } - CloseHandle(hkey_typelib); - CloseHandle(hkey); - CloseHandle(hkey_version); - CloseHandle(hkey_0); - CloseHandle(hkey_win32); + if (hkey_helpdir != NULL) + CloseHandle(hkey_helpdir); + if (hkey_flags != NULL) + CloseHandle(hkey_flags); + if (hkey_typelib != NULL) + CloseHandle(hkey_typelib); + if (hkey != NULL) + CloseHandle(hkey); + if (hkey_version != NULL) + CloseHandle(hkey_version); + if (hkey_0 != NULL) + CloseHandle(hkey_0); + if (hkey_win32 != NULL) + CloseHandle(hkey_win32); } +#ifdef __cplusplus delete module_name; + delete typelib_name; +#else + free(module_name); + free(typelib_name); +#endif - return S_OK; + return hres; } STDAPI DllUnregisterServer(void) { Modified: branches/gsoc2008-jezabek/Source/CParse/templ.c =================================================================== --- branches/gsoc2008-jezabek/Source/CParse/templ.c 2008-06-29 22:39:59 UTC (rev 10612) +++ branches/gsoc2008-jezabek/Source/CParse/templ.c 2008-06-30 16:57:49 UTC (rev 10613) @@ -167,18 +167,21 @@ add_parms(Getattr(n, "throws"), cpatchlist, typelist); } else if (Equal(nodeType, "destructor")) { String *name = Getattr(n, "name"); - if (name && strchr(Char(name), '<')) { - Append(patchlist, Getattr(n, "name")); - } else { - Append(name, templateargs); + if (name) { + if (strchr(Char(name), '<')) + Append(patchlist, Getattr(n, "name")); + else + Append(name, templateargs); } name = Getattr(n, "sym:name"); - if (name && strchr(Char(name), '<')) { - String *sn = Copy(tname); - Setattr(n, "sym:name", sn); - Delete(sn); - } else { - Replace(name, tname, rname, DOH_REPLACE_ANY); + if (name) { + if (strchr(Char(name), '<')) { + String *sn = Copy(tname); + Setattr(n, "sym:name", sn); + Delete(sn); + } else { + Replace(name, tname, rname, DOH_REPLACE_ANY); + } } /* Setattr(n,"sym:name",name); */ Append(cpatchlist, Getattr(n, "code")); Modified: branches/gsoc2008-jezabek/Source/Modules/allegrocl.cxx =================================================================== --- branches/gsoc2008-jezabek/Source/Modules/allegrocl.cxx 2008-06-29 22:39:59 UTC (rev 10612) +++ branches/gsoc2008-jezabek/Source/Modules/allegrocl.cxx 2008-06-30 16:57:49 UTC (rev 10613) @@ -2518,6 +2518,8 @@ ParmList *parms = CopyParmList(Getattr(n, "parms")); Wrapper *f = NewWrapper(); + SwigType *t = Getattr(n, "type"); + String *name = Getattr(n, "name"); String *raw_return_type = Swig_typemap_lookup("ctype", n, "", 0); SwigType *return_type = Swig_cparse_type(raw_return_type); @@ -2556,7 +2558,7 @@ if (Getattr(n, "overload:ignore")) { // if we're the last overload, make sure to force the emit // of the rest of the overloads before we leave. - Printf(stderr, "ignored overload %s(%x)\n", Getattr(n, "name"), Getattr(n, "sym:nextSibling")); + Printf(stderr, "ignored overload %s(%x)\n", name, Getattr(n, "sym:nextSibling")); if (!Getattr(n, "sym:nextSibling")) { update_package_if_needed(n); emit_buffered_defuns(n); @@ -2571,7 +2573,7 @@ int gencomma = 0; #ifdef ALLEGROCL_DEBUG - Printf(stderr, "Walking parameters for %s '%s'\n", Getattr(n, "allegrocl:kind"), Getattr(n, "name")); + Printf(stderr, "Walking parameters for %s '%s'\n", Getattr(n, "allegrocl:kind"), name); #endif // Now walk the function parameter list and generate code to get arguments String *name_and_parms = NewStringf("%s (", mangled); @@ -2625,12 +2627,16 @@ String *actioncode = emit_action(n); - String *result_convert = Swig_typemap_lookup_out("out", n, "result", f, actioncode); - Replaceall(result_convert, "$result", "lresult"); - Printf(f->code, "%s\n", result_convert); - Printf(f->code, " return lresult;\n"); - Delete(result_convert); - emit_return_variable(n, Getattr(n, "type"), f); + String *tm = Swig_typemap_lookup_out("out", n, "result", f, actioncode); + if (tm) { + Replaceall(tm, "$result", "lresult"); + Printf(f->code, "%s\n", tm); + Printf(f->code, " return lresult;\n"); + Delete(tm); + } else { + Swig_warning(WARN_TYPEMAP_OUT_UNDEF, input_file, line_number, "Unable to use return type %s in function %s.\n", SwigType_str(t, 0), name); + } + emit_return_variable(n, t, f); if (CPlusPlus) { Printf(f->code, " } catch (...) {\n"); Modified: branches/gsoc2008-jezabek/Source/Modules/com.cxx =================================================================== --- branches/gsoc2008-jezabek/Source/Modules/com.cxx 2008-06-29 22:39:59 UTC (rev 10612) +++ branches/gsoc2008-jezabek/Source/Modules/com.cxx 2008-06-30 16:57:49 UTC (rev 10613) @@ -192,11 +192,11 @@ formatGUID(module_class_vtable_code, &module_clsid, true); Printf(module_class_vtable_code, ";\n\n"); - Printf(module_class_vtable_code, "HRESULT SWIGSTDCALL _wrap%sQueryInterface(void *that, REFIID iid, " + Printf(module_class_vtable_code, "HRESULT SWIGSTDCALL _wrap%sQueryInterface(void *that, GUID *iid, " "void ** ppvObject) {\n", module_class_name); - Printf(module_class_vtable_code, " if (iid == IID_IUnknown ||\n" - " iid == IID_%s", module_class_name); + Printf(module_class_vtable_code, " if (SWIGIsEqual(iid, &IID_IUnknown) ||\n" + " SWIGIsEqual(iid, &IID_%s)", module_class_name); Printf(module_class_vtable_code, ") {\n" " /* FIXME: This could be more elegant */\n" @@ -211,7 +211,11 @@ Printf(module_class_vtable_code, "void * SWIGSTDCALL _wrap_new_%s() {\n" + "#ifdef __cplusplus\n" " SWIGWrappedObject *res = new SWIGWrappedObject;\n" + "#else\n" + " SWIGWrappedObject *res = (SWIGWrappedObject *) malloc(sizeof(SWIGWrappedObject));\n" + "#endif\n" " res->vtable = _wrap%s_vtable;\n" " res->SWIGWrappedObject_vtable = NULL;\n" " res->cPtr = NULL;\n" @@ -232,15 +236,15 @@ Printf(clsid_list, "}\";\n\n"); Printf(clsid_list, "static SWIGClassDescription_t SWIGClassDescription[] = {\n"); - Printf(clsid_list, " { (SWIG_funcptr) _wrap_new_%s, CLSID_%s, \"{", module_class_name, module_class_name); + Printf(clsid_list, " { (SWIG_funcptr) _wrap_new_%s, &CLSID_%s, \"{", module_class_name, module_class_name); formatGUID(clsid_list, &module_clsid, false); Printf(clsid_list, "}\" },\n"); /* Emit code */ Language::top(n); - /* Insert guard element; IID_IUnknown could in fact be any GUID */ - Printf(clsid_list, " { NULL, IID_IUnknown, NULL } /* guard element */\n"); + /* Insert guard element */ + Printf(clsid_list, " { NULL, NULL, NULL } /* guard element */\n"); Printf(clsid_list, "};\n\n"); @@ -328,6 +332,7 @@ Delete(f_vtables); Dump(clsid_list, f_runtime); Delete(clsid_list); + Replaceall(f_factory, "$module", module_class_name); if (dllexports_flag) Dump(f_factory, f_runtime); Delete(f_factory); @@ -792,17 +797,17 @@ formatGUID(proxy_class_vtable_code, proxy_clsid, true); Printf(proxy_class_vtable_code, ";\n\n"); - Printf(clsid_list, " { (SWIG_funcptr) _wrap_new_%s, CLSID_%s, \"{", proxy_class_name, proxy_class_name); + Printf(clsid_list, " { (SWIG_funcptr) _wrap_new_%s, &CLSID_%s, \"{", proxy_class_name, proxy_class_name); formatGUID(clsid_list, proxy_clsid, false); Printf(clsid_list, "}\" },\n"); } - Printf(proxy_class_vtable_code, "HRESULT SWIGSTDCALL _wrap%sQueryInterface1(void *that, REFIID iid, " + Printf(proxy_class_vtable_code, "HRESULT SWIGSTDCALL _wrap%sQueryInterface1(void *that, GUID *iid, " "void ** ppvObject) {\n", proxy_class_name); /* Look if the requested interface is ISWIGWrappedObject */ Printf(proxy_class_vtable_code, - " if (iid == IID_ISWIGWrappedObject) {\n" + " if (SWIGIsEqual(iid, &IID_ISWIGWrappedObject)) {\n" " /* FIXME: This could be more elegant */\n" " SWIGAddRef1(that);\n" /* Address of current object, incremented by the size of a pointer */ @@ -810,8 +815,8 @@ " return S_OK;\n" " }\n\n"); - Printf(proxy_class_vtable_code, " if (iid == IID_IUnknown ||\n" - " iid == IID_%s", proxy_class_name); + Printf(proxy_class_vtable_code, " if (SWIGIsEqual(iid, &IID_IUnknown) ||\n" + " SWIGIsEqual(iid, &IID_%s)", proxy_class_name); bases = Getattr(n, "bases"); @@ -819,7 +824,7 @@ while (bases) { Iterator base = First(bases); - Printf(proxy_class_vtable_code, " ||\n iid == IID_%s", Getattr(base.item, "sym:name")); + Printf(proxy_class_vtable_code, " ||\n SWIGIsEqual(iid, &IID_%s)", Getattr(base.item, "sym:name")); /* Get next base */ bases = Getattr(base.item, "bases"); @@ -836,7 +841,7 @@ bases = NULL; - Printf(proxy_class_vtable_code, "HRESULT SWIGSTDCALL _wrap%sQueryInterface2(void *that, REFIID iid, " + Printf(proxy_class_vtable_code, "HRESULT SWIGSTDCALL _wrap%sQueryInterface2(void *that, GUID *iid, " "void ** ppvObject) {\n", proxy_class_name); Printf(proxy_class_vtable_code, @@ -906,7 +911,11 @@ Printv(proxy_class_vtable_code, "\n};\n\n", NIL); Printf(proxy_class_vtable_code, "void * SWIGSTDCALL SWIG_wrap%s(void *arg) {\n" + "#ifdef __cplusplus\n" " SWIGWrappedObject *res = new SWIGWrappedObject;\n" + "#else\n" + " SWIGWrappedObject *res = (SWIGWrappedObject *) malloc(sizeof(SWIGWrappedObject));\n" + "#endif\n" " res->vtable = _wrap%svtable;\n" " res->SWIGWrappedObject_vtable = _wrap%sSWIGWrappedObject_vtable;\n" " res->cPtr = arg;\n" Modified: branches/gsoc2008-jezabek/Source/Modules/csharp.cxx =================================================================== --- branches/gsoc2008-jezabek/Source/Modules/csharp.cxx 2008-06-29 22:39:59 UTC (rev 10612) +++ branches/gsoc2008-jezabek/Source/Modules/csharp.cxx 2008-06-30 16:57:49 UTC (rev 10613) @@ -1998,7 +1998,8 @@ if (!(variable_wrapper_flag && i == 0)) { SwigType *pt = Getattr(p, "type"); String *param_type = NewString(""); - last_parm = p; + if (setter_flag) + last_parm = p; /* Get the C# parameter type */ if ((tm = Getattr(p, "tmap:cstype"))) { Modified: branches/gsoc2008-jezabek/Source/Modules/ocaml.cxx =================================================================== --- branches/gsoc2008-jezabek/Source/Modules/ocaml.cxx 2008-06-29 22:39:59 UTC (rev 10612) +++ branches/gsoc2008-jezabek/Source/Modules/ocaml.cxx 2008-06-30 16:57:49 UTC (rev 10613) @@ -1292,56 +1292,50 @@ * which means looking up and registering by typedef and enum name. */ int enumDeclaration(Node *n) { String *name = Getattr(n, "name"); - String *oname = name ? NewString(name) : NULL; - /* name is now fully qualified */ - String *fully_qualified_name = NewString(name); - bool seen_enum = false; - if (name_qualifier) - Delete(name_qualifier); - char *strip_position; - name_qualifier = fully_qualify_enum_name(n, NewString("")); + if (name) { + String *oname = NewString(name); + /* name is now fully qualified */ + String *fully_qualified_name = NewString(name); + bool seen_enum = false; + if (name_qualifier) + Delete(name_qualifier); + char *strip_position; + name_qualifier = fully_qualify_enum_name(n, NewString("")); - /* Recent changes have distrubed enum and template naming again. - * Will try to keep it consistent by can't guarantee much given - * that these things move around a lot. - * - * I need to figure out a way to isolate this module better. - */ - if (oname) { strip_position = strstr(Char(oname), "::"); while (strip_position) { - strip_position += 2; - oname = NewString(strip_position); - strip_position = strstr(Char(oname), "::"); + strip_position += 2; + oname = NewString(strip_position); + strip_position = strstr(Char(oname), "::"); } - } - seen_enum = oname ? (Getattr(seen_enums, fully_qualified_name) ? true : false) : false; + seen_enum = (Getattr(seen_enums, fully_qualified_name) ? true : false); - if (oname && !seen_enum) { - const_enum = true; - Printf(f_enum_to_int, "| `%s -> (match y with\n", oname); - Printf(f_int_to_enum, "| `%s -> C_enum (\n", oname); - /* * * * A note about enum name resolution * * * * - * This code should now work, but I think we can do a bit better. - * The problem I'm having is that swig isn't very precise about - * typedef name resolution. My opinion is that SwigType_typedef - * resolve_all should *always* return the enum tag if one exists, - * rather than the admittedly friendlier enclosing typedef. - * - * This would make one of the cases below unnecessary. - * * * */ - Printf(f_mlbody, "let _ = Callback.register \"%s_marker\" (`%s)\n", fully_qualified_name, oname); - if (!strncmp(Char(fully_qualified_name), "enum ", 5)) { - String *fq_noenum = NewString(Char(fully_qualified_name) + 5); - Printf(f_mlbody, - "let _ = Callback.register \"%s_marker\" (`%s)\n" "let _ = Callback.register \"%s_marker\" (`%s)\n", fq_noenum, oname, fq_noenum, name); - } + if (!seen_enum) { + const_enum = true; + Printf(f_enum_to_int, "| `%s -> (match y with\n", oname); + Printf(f_int_to_enum, "| `%s -> C_enum (\n", oname); + /* * * * A note about enum name resolution * * * * + * This code should now work, but I think we can do a bit better. + * The problem I'm having is that swig isn't very precise about + * typedef name resolution. My opinion is that SwigType_typedef + * resolve_all should *always* return the enum tag if one exists, + * rather than the admittedly friendlier enclosing typedef. + * + * This would make one of the cases below unnecessary. + * * * */ + Printf(f_mlbody, "let _ = Callback.register \"%s_marker\" (`%s)\n", fully_qualified_name, oname); + if (!strncmp(Char(fully_qualified_name), "enum ", 5)) { + String *fq_noenum = NewString(Char(fully_qualified_name) + 5); + Printf(f_mlbody, + "let _ = Callback.register \"%s_marker\" (`%s)\n" "let _ = Callback.register \"%s_marker\" (`%s)\n", fq_noenum, oname, fq_noenum, name); + } - Printf(f_enumtypes_type, "| `%s\n", oname); - Insert(fully_qualified_name, 0, "enum "); - Setattr(seen_enums, fully_qualified_name, n); + Printf(f_enumtypes_type, "| `%s\n", oname); + Insert(fully_qualified_name, 0, "enum "); + Setattr(seen_enums, fully_qualified_name, n); + } } int ret = Language::enumDeclaration(n); Modified: branches/gsoc2008-jezabek/Source/Swig/typesys.c =================================================================== --- branches/gsoc2008-jezabek/Source/Swig/typesys.c 2008-06-29 22:39:59 UTC (rev 10612) +++ branches/gsoc2008-jezabek/Source/Swig/typesys.c 2008-06-30 16:57:49 UTC (rev 10613) @@ -847,7 +847,7 @@ String *result; int i, len; - if (t && strncmp(Char(t), "::", 2) == 0) { + if (strncmp(Char(t), "::", 2) == 0) { return Copy(t); } Property changes on: branches/gsoc2008-jezabek/Tools/config ___________________________________________________________________ Name: svn:ignore - compile depcomp install-sh ltmain.sh missing mkinstalldirs ylwrap + compile depcomp install-sh ltmain.sh missing mkinstalldirs ylwrap config.sub config.guess Deleted: branches/gsoc2008-jezabek/Tools/config/config.guess =================================================================== --- branches/gsoc2008-jezabek/Tools/config/config.guess 2008-06-29 22:39:59 UTC (rev 10612) +++ branches/gsoc2008-jezabek/Tools/config/config.guess 2008-06-30 16:57:49 UTC (rev 10613) @@ -1,1500 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. - -timestamp='2006-07-02' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner <pe...@bo...>. -# Please send patches to <con...@gn...>. Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to <con...@gn...>." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (gh...@no... 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # ak...@wp... (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include <stdio.h> /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <sys/systemcfg.h> - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include <stdlib.h> - #include <unistd.h> - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <unistd.h> - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - x86:Interix*:[3456]*) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T:Interix*:[3456]*) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux... [truncated message content] |