Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 229341 Details for
Bug 317211
sys-devel/gcc-4.4.3-r2 doesn't compile in FreeBSD anymore.
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
93_all_gcc-4.4-cloog-dl.patch
93_all_gcc-4.4-cloog-dl.patch (text/plain), 16.45 KB, created by
Ryan Hill (RETIRED)
on 2010-04-27 04:07:08 UTC
(
hide
)
Description:
93_all_gcc-4.4-cloog-dl.patch
Filename:
MIME Type:
Creator:
Ryan Hill (RETIRED)
Created:
2010-04-27 04:07:08 UTC
Size:
16.45 KB
patch
obsolete
>diff --git a/gcc/Makefile.in b/gcc/Makefile.in >index ffed3aa..ce8d5bf 100644 >--- a/gcc/Makefile.in >+++ b/gcc/Makefile.in >@@ -914,7 +914,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) > # How to link with both our special library facilities > # and the system's installed libraries. > LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER) >-BACKENDLIBS = $(CLOOGLIBS) $(PPLLIBS) $(GMPLIBS) >+BACKENDLIBS = $(GMPLIBS) $(if $(CLOOGLIBS),@DL_LIB@) > # Any system libraries needed just for GNAT. > SYSLIBS = @GNAT_LIBEXC@ > >@@ -3061,6 +3061,9 @@ $(out_object_file): $(out_file) $(CONFIG_H) coretypes.h $(TM_H) $(TREE_H) \ > $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \ > $(out_file) $(OUTPUT_OPTION) > >+graphite.o : \ >+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS)) >+ > # Build auxiliary files that support ecoff format. > mips-tfile: mips-tfile.o version.o $(LIBDEPS) > $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tfile.o version.o $(LIBS) >diff --git a/gcc/configure b/gcc/configure >index 119b70d..f6b2950 100755 >--- a/gcc/configure >+++ b/gcc/configure >@@ -458,7 +458,7 @@ ac_includes_default="\ > # include <unistd.h> > #endif" > >-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical build_libsubdir build_subdir host_subdir target_subdir GENINSRC CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP EGREP loose_warn strict_warn warn_cflags nocommon_flag TREEBROWSER valgrind_path valgrind_path_defines valgrind_command coverage_flags enable_multilib enable_decimal_float enable_fixed_point enable_shared TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR onestep PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI datarootdir docdir htmldir SET_MAKE AWK LN_S LN RANLIB ac_ct_RANLIB ranlib_flags INSTALL INSTALL_PROGRAM INSTALL_DATA make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES FLEX BISON NM AR COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T LIBICONV LTLIBICONV LIBICONV_DEP manext objext gthread_flags extra_modes_file extra_opt_files USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT CROSS ALL SYSTEM_HEADER_DIR inhibit_libc CC_FOR_BUILD BUILD_CFLAGS BUILD_LDFLAGS STMP_FIXINC STMP_FIXPROTO collect2 LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN OBJDUMP ac_ct_OBJDUMP ac_ct_AR STRIP ac_ct_STRIP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 objdir enable_fast_install gcc_cv_as ORIGINAL_AS_FOR_TARGET gcc_cv_ld ORIGINAL_LD_FOR_TARGET gcc_cv_nm ORIGINAL_NM_FOR_TARGET gcc_cv_objdump gcc_cv_readelf libgcc_visibility GGC zlibdir zlibinc MAINT gcc_tooldir dollar slibdir subdirs srcdir all_compilers all_gtfiles all_lang_makefrags all_lang_makefiles all_languages all_selected_languages build_exeext build_install_headers_dir build_xm_file_list build_xm_include_list build_xm_defines build_file_translate check_languages cpp_install_dir xmake_file tmake_file extra_gcc_objs extra_headers_list extra_objs extra_parts extra_passes extra_programs float_h_file gcc_config_arguments gcc_gxx_include_dir host_exeext host_xm_file_list host_xm_include_list host_xm_defines out_host_hook_obj install lang_opt_files lang_specs_files lang_tree_files local_prefix md_file objc_boehm_gc out_file out_object_file thread_file tm_file_list tm_include_list tm_defines tm_p_file_list tm_p_include_list xm_file_list xm_include_list xm_defines c_target_objs cxx_target_objs fortran_target_objs target_cpu_default GMPLIBS GMPINC PPLLIBS PPLINC CLOOGLIBS CLOOGINC LIBOBJS LTLIBOBJS' >+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical build_libsubdir build_subdir host_subdir target_subdir GENINSRC CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP EGREP loose_warn strict_warn warn_cflags nocommon_flag TREEBROWSER valgrind_path valgrind_path_defines valgrind_command coverage_flags enable_multilib enable_decimal_float enable_fixed_point enable_shared TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR onestep PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI datarootdir docdir htmldir SET_MAKE AWK LN_S LN RANLIB ac_ct_RANLIB ranlib_flags INSTALL INSTALL_PROGRAM INSTALL_DATA make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES FLEX BISON NM AR COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T LIBICONV LTLIBICONV LIBICONV_DEP manext objext gthread_flags extra_modes_file extra_opt_files USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT CROSS ALL SYSTEM_HEADER_DIR inhibit_libc CC_FOR_BUILD BUILD_CFLAGS BUILD_LDFLAGS STMP_FIXINC STMP_FIXPROTO collect2 LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN OBJDUMP ac_ct_OBJDUMP ac_ct_AR STRIP ac_ct_STRIP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 objdir enable_fast_install gcc_cv_as ORIGINAL_AS_FOR_TARGET gcc_cv_ld ORIGINAL_LD_FOR_TARGET gcc_cv_nm ORIGINAL_NM_FOR_TARGET gcc_cv_objdump gcc_cv_readelf libgcc_visibility GGC zlibdir zlibinc MAINT gcc_tooldir dollar slibdir subdirs srcdir all_compilers all_gtfiles all_lang_makefrags all_lang_makefiles all_languages all_selected_languages build_exeext build_install_headers_dir build_xm_file_list build_xm_include_list build_xm_defines build_file_translate check_languages cpp_install_dir xmake_file tmake_file extra_gcc_objs extra_headers_list extra_objs extra_parts extra_passes extra_programs float_h_file gcc_config_arguments gcc_gxx_include_dir host_exeext host_xm_file_list host_xm_include_list host_xm_defines out_host_hook_obj install lang_opt_files lang_specs_files lang_tree_files local_prefix md_file objc_boehm_gc out_file out_object_file thread_file tm_file_list tm_include_list tm_defines tm_p_file_list tm_p_include_list xm_file_list xm_include_list xm_defines c_target_objs cxx_target_objs fortran_target_objs target_cpu_default GMPLIBS GMPINC PPLLIBS PPLINC CLOOGLIBS CLOOGINC DL_LIB LIBOBJS LTLIBOBJS' > ac_subst_files='language_hooks' > ac_pwd=`pwd` > >@@ -24839,6 +24839,142 @@ _ACEOF > > fi > >+# Check how to dlopen >+DL_LIB= >+saved_LIBS="$LIBS" >+echo "$as_me:$LINENO: checking for library containing dlopen" >&5 >+echo $ECHO_N "checking for library containing dlopen... $ECHO_C" >&6 >+if test "${ac_cv_search_dlopen+set}" = set; then >+ echo $ECHO_N "(cached) $ECHO_C" >&6 >+else >+ ac_func_search_save_LIBS=$LIBS >+ac_cv_search_dlopen=no >+cat >conftest.$ac_ext <<_ACEOF >+/* confdefs.h. */ >+_ACEOF >+cat confdefs.h >>conftest.$ac_ext >+cat >>conftest.$ac_ext <<_ACEOF >+/* end confdefs.h. */ >+ >+/* Override any gcc2 internal prototype to avoid an error. */ >+#ifdef __cplusplus >+extern "C" >+#endif >+/* We use char because int might match the return type of a gcc2 >+ builtin and then its argument prototype would still apply. */ >+char dlopen (); >+int >+main () >+{ >+dlopen (); >+ ; >+ return 0; >+} >+_ACEOF >+rm -f conftest.$ac_objext conftest$ac_exeext >+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 >+ (eval $ac_link) 2>conftest.er1 >+ ac_status=$? >+ grep -v '^ *+' conftest.er1 >conftest.err >+ rm -f conftest.er1 >+ cat conftest.err >&5 >+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >+ (exit $ac_status); } && >+ { ac_try='test -z "$ac_c_werror_flag" >+ || test ! -s conftest.err' >+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 >+ (eval $ac_try) 2>&5 >+ ac_status=$? >+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >+ (exit $ac_status); }; } && >+ { ac_try='test -s conftest$ac_exeext' >+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 >+ (eval $ac_try) 2>&5 >+ ac_status=$? >+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >+ (exit $ac_status); }; }; then >+ ac_cv_search_dlopen="none required" >+else >+ echo "$as_me: failed program was:" >&5 >+sed 's/^/| /' conftest.$ac_ext >&5 >+ >+fi >+rm -f conftest.err conftest.$ac_objext \ >+ conftest$ac_exeext conftest.$ac_ext >+if test "$ac_cv_search_dlopen" = no; then >+ for ac_lib in dl; do >+ LIBS="-l$ac_lib $ac_func_search_save_LIBS" >+ cat >conftest.$ac_ext <<_ACEOF >+/* confdefs.h. */ >+_ACEOF >+cat confdefs.h >>conftest.$ac_ext >+cat >>conftest.$ac_ext <<_ACEOF >+/* end confdefs.h. */ >+ >+/* Override any gcc2 internal prototype to avoid an error. */ >+#ifdef __cplusplus >+extern "C" >+#endif >+/* We use char because int might match the return type of a gcc2 >+ builtin and then its argument prototype would still apply. */ >+char dlopen (); >+int >+main () >+{ >+dlopen (); >+ ; >+ return 0; >+} >+_ACEOF >+rm -f conftest.$ac_objext conftest$ac_exeext >+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 >+ (eval $ac_link) 2>conftest.er1 >+ ac_status=$? >+ grep -v '^ *+' conftest.er1 >conftest.err >+ rm -f conftest.er1 >+ cat conftest.err >&5 >+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >+ (exit $ac_status); } && >+ { ac_try='test -z "$ac_c_werror_flag" >+ || test ! -s conftest.err' >+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 >+ (eval $ac_try) 2>&5 >+ ac_status=$? >+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >+ (exit $ac_status); }; } && >+ { ac_try='test -s conftest$ac_exeext' >+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 >+ (eval $ac_try) 2>&5 >+ ac_status=$? >+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >+ (exit $ac_status); }; }; then >+ ac_cv_search_dlopen="-l$ac_lib" >+break >+else >+ echo "$as_me: failed program was:" >&5 >+sed 's/^/| /' conftest.$ac_ext >&5 >+ >+fi >+rm -f conftest.err conftest.$ac_objext \ >+ conftest$ac_exeext conftest.$ac_ext >+ done >+fi >+LIBS=$ac_func_search_save_LIBS >+fi >+echo "$as_me:$LINENO: result: $ac_cv_search_dlopen" >&5 >+echo "${ECHO_T}$ac_cv_search_dlopen" >&6 >+if test "$ac_cv_search_dlopen" != no; then >+ test "$ac_cv_search_dlopen" = "none required" || LIBS="$ac_cv_search_dlopen $LIBS" >+ >+fi >+ >+case $ac_cv_search_dlopen in >+ no*) ;; >+ *) DL_LIB=$ac_cv_search_dlopen ;; >+esac >+ >+LIBS=$saved_LIBS >+ > # Configure the subdirectories > # AC_CONFIG_SUBDIRS($subdirs) > >@@ -25684,6 +25820,7 @@ s,@PPLLIBS@,$PPLLIBS,;t t > s,@PPLINC@,$PPLINC,;t t > s,@CLOOGLIBS@,$CLOOGLIBS,;t t > s,@CLOOGINC@,$CLOOGINC,;t t >+s,@DL_LIB@,$DL_LIB,;t t > s,@LIBOBJS@,$LIBOBJS,;t t > s,@LTLIBOBJS@,$LTLIBOBJS,;t t > /@language_hooks@/r $language_hooks >diff --git a/gcc/configure.ac b/gcc/configure.ac >index 9737d1a..dd41f11 100644 >--- a/gcc/configure.ac >+++ b/gcc/configure.ac >@@ -3990,6 +3990,17 @@ if test "x${CLOOGLIBS}" != "x" ; then > AC_DEFINE(HAVE_cloog, 1, [Define if cloog is in use.]) > fi > >+# Check how to dlopen >+DL_LIB= >+saved_LIBS="$LIBS" >+AC_SEARCH_LIBS([dlopen], [dl]) >+case $ac_cv_search_dlopen in >+ no*) ;; >+ *) DL_LIB=$ac_cv_search_dlopen ;; >+esac >+AC_SUBST(DL_LIB) >+LIBS=$saved_LIBS >+ > # Configure the subdirectories > # AC_CONFIG_SUBDIRS($subdirs) > >diff --git a/gcc/graphite.c b/gcc/graphite.c >index b732b40..798b141 100644 >--- a/gcc/graphite.c >+++ b/gcc/graphite.c >@@ -59,6 +59,110 @@ along with GCC; see the file COPYING3. If not see > #include "cloog/cloog.h" > #include "graphite.h" > >+#include <dlfcn.h> >+#define DYNSYMS \ >+ DYNSYM (cloog_block_alloc); \ >+ DYNSYM (cloog_block_list_free); \ >+ DYNSYM (cloog_block_list_malloc); \ >+ DYNSYM (cloog_clast_create); \ >+ DYNSYM (cloog_clast_free); \ >+ DYNSYM (cloog_domain_free); \ >+ DYNSYM (cloog_domain_matrix2domain); \ >+ DYNSYM (cloog_initialize); \ >+ DYNSYM (cloog_loop_malloc); \ >+ DYNSYM (cloog_matrix_alloc); \ >+ DYNSYM (cloog_matrix_copy); \ >+ DYNSYM (cloog_matrix_free); \ >+ DYNSYM (cloog_matrix_print); \ >+ DYNSYM (cloog_names_malloc); \ >+ DYNSYM (cloog_names_scalarize); \ >+ DYNSYM (cloog_options_free); \ >+ DYNSYM (cloog_options_malloc); \ >+ DYNSYM (cloog_program_dump_cloog); \ >+ DYNSYM (cloog_program_extract_scalars); \ >+ DYNSYM (cloog_program_free); \ >+ DYNSYM (cloog_program_generate); \ >+ DYNSYM (cloog_program_malloc); \ >+ DYNSYM (cloog_program_print); \ >+ DYNSYM (cloog_program_scatter); \ >+ DYNSYM (cloog_statement_alloc); \ >+ DYNSYM (ppl_finalize); \ >+ DYNSYM (pprint); \ >+ DYNSYM (stmt_block); \ >+ DYNSYM (stmt_for); \ >+ DYNSYM (stmt_guard); \ >+ DYNSYM (stmt_root); \ >+ DYNSYM (stmt_user); >+static struct >+{ >+ bool inited; >+ void *h; >+#define DYNSYM(x) __typeof (x) *p_##x >+ DYNSYMS >+#undef DYNSYM >+} cloog_pointers; >+ >+#define cloog_block_alloc (*cloog_pointers.p_cloog_block_alloc) >+#define cloog_block_list_free (*cloog_pointers.p_cloog_block_list_free) >+#define cloog_block_list_malloc (*cloog_pointers.p_cloog_block_list_malloc) >+#define cloog_clast_create (*cloog_pointers.p_cloog_clast_create) >+#define cloog_clast_free (*cloog_pointers.p_cloog_clast_free) >+#define cloog_domain_free (*cloog_pointers.p_cloog_domain_free) >+#define cloog_domain_matrix2domain (*cloog_pointers.p_cloog_domain_matrix2domain) >+#define cloog_initialize (*cloog_pointers.p_cloog_initialize) >+#define cloog_loop_malloc (*cloog_pointers.p_cloog_loop_malloc) >+#define cloog_matrix_alloc (*cloog_pointers.p_cloog_matrix_alloc) >+#define cloog_matrix_copy (*cloog_pointers.p_cloog_matrix_copy) >+#define cloog_matrix_free (*cloog_pointers.p_cloog_matrix_free) >+#define cloog_matrix_print (*cloog_pointers.p_cloog_matrix_print) >+#define cloog_names_malloc (*cloog_pointers.p_cloog_names_malloc) >+#define cloog_names_scalarize (*cloog_pointers.p_cloog_names_scalarize) >+#define cloog_options_free (*cloog_pointers.p_cloog_options_free) >+#define cloog_options_malloc (*cloog_pointers.p_cloog_options_malloc) >+#define cloog_program_dump_cloog (*cloog_pointers.p_cloog_program_dump_cloog) >+#define cloog_program_extract_scalars (*cloog_pointers.p_cloog_program_extract_scalars) >+#define cloog_program_free (*cloog_pointers.p_cloog_program_free) >+#define cloog_program_generate (*cloog_pointers.p_cloog_program_generate) >+#define cloog_program_malloc (*cloog_pointers.p_cloog_program_malloc) >+#define cloog_program_print (*cloog_pointers.p_cloog_program_print) >+#define cloog_program_scatter (*cloog_pointers.p_cloog_program_scatter) >+#define cloog_statement_alloc (*cloog_pointers.p_cloog_statement_alloc) >+#define ppl_finalize (*cloog_pointers.p_ppl_finalize) >+#define pprint (*cloog_pointers.p_pprint) >+#define stmt_block (*cloog_pointers.p_stmt_block) >+#define stmt_for (*cloog_pointers.p_stmt_for) >+#define stmt_guard (*cloog_pointers.p_stmt_guard) >+#define stmt_root (*cloog_pointers.p_stmt_root) >+#define stmt_user (*cloog_pointers.p_stmt_user) >+ >+#define cloog_finalize (*cloog_pointers.p_ppl_finalize) >+ >+static bool >+init_cloog_pointers (void) >+{ >+ void *h; >+ >+ if (cloog_pointers.inited) >+ return cloog_pointers.h != NULL; >+ h = dlopen ("libcloog.so.0", RTLD_LAZY); >+ cloog_pointers.h = h; >+ if (h == NULL) >+ return false; >+#define DYNSYM(x) \ >+ do \ >+ { \ >+ union { __typeof (cloog_pointers.p_##x) p; void *q; } u; \ >+ u.q = dlsym (h, #x); \ >+ if (u.q == NULL) \ >+ return false; \ >+ cloog_pointers.p_##x = u.p; \ >+ } \ >+ while (0) >+ DYNSYMS >+#undef DYNSYM >+ return true; >+} >+ > static VEC (scop_p, heap) *current_scops; > > /* Converts a GMP constant V to a tree and returns it. */ >@@ -4075,10 +4179,10 @@ clast_get_body_of_loop (struct clast_stmt *stmt) > STMT. */ > > static tree >-gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_for) >+gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_fora) > { >- struct clast_user_stmt *stmt = clast_get_body_of_loop ((struct clast_stmt *) stmt_for); >- const char *cloog_iv = stmt_for->iterator; >+ struct clast_user_stmt *stmt = clast_get_body_of_loop ((struct clast_stmt *) stmt_fora); >+ const char *cloog_iv = stmt_fora->iterator; > CloogStatement *cs = stmt->statement; > graphite_bb_p gbb = (graphite_bb_p) cloog_statement_usr (cs); > >@@ -6109,6 +6213,12 @@ graphite_transform_loops (void) > if (number_of_loops () <= 1) > return; > >+ if (!init_cloog_pointers ()) >+ { >+ sorry ("Graphite loop optimizations cannot be used"); >+ return; >+ } >+ > current_scops = VEC_alloc (scop_p, heap, 3); > recompute_all_dominators (); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 317211
: 229341