Hi! The brig FE doesn't build on i686-linux, because size_t arguments get a warning there when used with %lu. As %zu is not portable enough, cast to ulong is what is generally used elsewhere.
Bootstrapped/regtested on x86_64-linux and i686-linux, committed to trunk as obvious. 2017-01-30 Jakub Jelinek <ja...@redhat.com> * brigfrontend/brig-code-entry-handler.cc (brig_code_entry_handler::get_tree_cst_for_hsa_operand): For %lu cast size_t arguments to unsigned long. --- gcc/brig/brigfrontend/brig-code-entry-handler.cc.jj 2017-01-26 09:15:50.000000000 +0100 +++ gcc/brig/brigfrontend/brig-code-entry-handler.cc 2017-01-30 17:16:58.721940087 +0100 @@ -606,8 +606,9 @@ brig_code_entry_handler::get_tree_cst_fo if (bytes_left < scalar_element_size * element_count) fatal_error (UNKNOWN_LOCATION, "Not enough bytes left for the initializer " - "(%lu need %lu).", - bytes_left, scalar_element_size * element_count); + "(%lu need %lu).", (unsigned long) bytes_left, + (unsigned long) (scalar_element_size + * element_count)); vec<constructor_elt, va_gc> *vec_els = NULL; for (size_t i = 0; i < element_count; ++i) @@ -625,8 +626,8 @@ brig_code_entry_handler::get_tree_cst_fo if (bytes_left < scalar_element_size) fatal_error (UNKNOWN_LOCATION, "Not enough bytes left for the initializer " - "(%lu need %lu).", - bytes_left, scalar_element_size); + "(%lu need %lu).", (unsigned long) bytes_left, + (unsigned long) scalar_element_size); cst = build_tree_cst_element (scalar_element_type, next_data); bytes_left -= scalar_element_size; next_data += scalar_element_size; Jakub