The change... Author: hubicka Date: Thu May 13 17:47:48 2010 New Revision: 159371 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=159371 Log: * varpool.c (decide_is_variable_needed): Drop code checking TREE_SYMBOL_REFERENCED. Modified: trunk/gcc/ChangeLog trunk/gcc/varpool.c breaks the bootstrap of gcc trunk on x86_64-apple-darwin10. The failure appears as... libtool: link: (cd ".libs" && rm -f "libgfortran.dylib" && ln -s "libgfortran.3.dylib" "libgfortran.dylib") libtool: link: ar rc .libs/libgfortran.a backtrace.o bounds.o compile_options.o convert_char.o environ.o error.o fpu.o main.o memory.o pause.o stop.o string.o select.o all_l1.o all_l2.o all_l4.o all_l8.o all_l16.o any_l1.o any_l2.o any_l4.o any_l8.o any_l16.o count_1_l.o count_2_l.o count_4_l.o count_8_l.o count_16_l.o maxloc0_4_i1.o maxloc0_8_i1.o maxloc0_16_i1.o maxloc0_4_i2.o maxloc0_8_i2.o maxloc0_16_i2.o maxloc0_4_i4.o maxloc0_8_i4.o maxloc0_16_i4.o maxloc0_4_i8.o maxloc0_8_i8.o maxloc0_16_i8.o maxloc0_4_i16.o maxloc0_8_i16.o maxloc0_16_i16.o maxloc0_4_r4.o maxloc0_8_r4.o maxloc0_16_r4.o maxloc0_4_r8.o maxloc0_8_r8.o maxloc0_16_r8.o maxloc0_4_r10.o maxloc0_8_r10.o maxloc0_16_r10.o maxloc0_4_r16.o maxloc0_8_r16.o maxloc0_16_r16.o maxloc1_4_i1.o maxloc1_8_i1.o maxloc1_16_i1.o maxloc1_4_i2.o maxloc1_8_i2.o maxloc1_16_i2.o maxloc1_4_i4.o maxloc1_8_i4.o maxloc1_16_i4.o maxloc1_4_i8.o maxloc1_8_i8.o maxloc1_16_i8.o maxloc1_4_i16.o maxloc1_8_i16.o maxloc1_16_i16.o maxloc1_4_r4.o maxloc1_8_r4.o maxloc1_16_r4.o maxloc1_4_r8.o maxloc1_8_r8.o maxloc1_16_r8.o maxloc1_4_r10.o maxloc1_8_r10.o maxloc1_16_r10.o maxloc1_4_r16.o maxloc1_8_r16.o maxloc1_16_r16.o maxval_i1.o maxval_i2.o maxval_i4.o maxval_i8.o maxval_i16.o maxval_r4.o maxval_r8.o maxval_r10.o maxval_r16.o minloc0_4_i1.o minloc0_8_i1.o minloc0_16_i1.o minloc0_4_i2.o minloc0_8_i2.o minloc0_16_i2.o minloc0_4_i4.o minloc0_8_i4.o minloc0_16_i4.o minloc0_4_i8.o minloc0_8_i8.o minloc0_16_i8.o minloc0_4_i16.o minloc0_8_i16.o minloc0_16_i16.o minloc0_4_r4.o minloc0_8_r4.o minloc0_16_r4.o minloc0_4_r8.o minloc0_8_r8.o minloc0_16_r8.o minloc0_4_r10.o minloc0_8_r10.o minloc0_16_r10.o minloc0_4_r16.o minloc0_8_r16.o minloc0_16_r16.o minloc1_4_i1.o minloc1_8_i1.o minloc1_16_i1.o minloc1_4_i2.o minloc1_8_i2.o minloc1_16_i2.o minloc1_4_i4.o minloc1_8_i4.o minloc1_16_i4.o minloc1_4_i8.o minloc1_8_i8.o minloc1_16_i8.o minloc1_4_i16.o minloc1_8_i16.o minloc1_16_i16.o minloc1_4_r4.o minloc1_8_r4.o minloc1_16_r4.o minloc1_4_r8.o minloc1_8_r8.o minloc1_16_r8.o minloc1_4_r10.o minloc1_8_r10.o minloc1_16_r10.o minloc1_4_r16.o minloc1_8_r16.o minloc1_16_r16.o minval_i1.o minval_i2.o minval_i4.o minval_i8.o minval_i16.o minval_r4.o minval_r8.o minval_r10.o minval_r16.o product_i1.o product_i2.o product_i4.o product_i8.o product_i16.o product_r4.o product_r8.o product_r10.o product_r16.o product_c4.o product_c8.o product_c10.o product_c16.o sum_i1.o sum_i2.o sum_i4.o sum_i8.o sum_i16.o sum_r4.o sum_r8.o sum_r10.o sum_r16.o sum_c4.o sum_c8.o sum_c10.o sum_c16.o matmul_i1.o matmul_i2.o matmul_i4.o matmul_i8.o matmul_i16.o matmul_r4.o matmul_r8.o matmul_r10.o matmul_r16.o matmul_c4.o matmul_c8.o matmul_c10.o matmul_c16.o matmul_l4.o matmul_l8.o matmul_l16.o transpose_i4.o transpose_i8.o transpose_i16.o transpose_r4.o transpose_r8.o transpose_r10.o transpose_r16.o transpose_c4.o transpose_c8.o transpose_c10.o transpose_c16.o shape_i4.o shape_i8.o shape_i16.o eoshift1_4.o eoshift1_8.o eoshift1_16.o eoshift3_4.o eoshift3_8.o eoshift3_16.o cshift1_4.o cshift1_8.o cshift1_16.o reshape_i4.o reshape_i8.o reshape_i16.o reshape_r4.o reshape_r8.o reshape_r10.o reshape_r16.o reshape_c4.o reshape_c8.o reshape_c10.o reshape_c16.o in_pack_i1.o in_pack_i2.o in_pack_i4.o in_pack_i8.o in_pack_i16.o in_pack_r4.o in_pack_r8.o in_pack_r10.o in_pack_r16.o in_pack_c4.o in_pack_c8.o in_pack_c10.o in_pack_c16.o in_unpack_i1.o in_unpack_i2.o in_unpack_i4.o in_unpack_i8.o in_unpack_i16.o in_unpack_r4.o in_unpack_r8.o in_unpack_r10.o in_unpack_r16.o in_unpack_c4.o in_unpack_c8.o in_unpack_c10.o in_unpack_c16.o exponent_r4.o exponent_r8.o exponent_r10.o exponent_r16.o fraction_r4.o fraction_r8.o fraction_r10.o fraction_r16.o nearest_r4.o nearest_r8.o nearest_r10.o nearest_r16.o set_exponent_r4.o set_exponent_r8.o set_exponent_r10.o set_exponent_r16.o pow_i4_i4.o pow_i8_i4.o pow_i16_i4.o pow_c4_i4.o pow_c8_i4.o pow_c10_i4.o pow_c16_i4.o pow_i4_i8.o pow_i8_i8.o pow_i16_i8.o pow_r4_i8.o pow_r8_i8.o pow_r10_i8.o pow_r16_i8.o pow_c4_i8.o pow_c8_i8.o pow_c10_i8.o pow_c16_i8.o pow_i4_i16.o pow_i8_i16.o pow_i16_i16.o pow_r4_i16.o pow_r8_i16.o pow_r10_i16.o pow_r16_i16.o pow_c4_i16.o pow_c8_i16.o pow_c10_i16.o pow_c16_i16.o rrspacing_r4.o rrspacing_r8.o rrspacing_r10.o rrspacing_r16.o spacing_r4.o spacing_r8.o spacing_r10.o spacing_r16.o pack_i1.o pack_i2.o pack_i4.o pack_i8.o pack_i16.o pack_r4.o pack_r8.o pack_r10.o pack_r16.o pack_c4.o pack_c8.o pack_c10.o pack_c16.o unpack_i1.o unpack_i2.o unpack_i4.o unpack_i8.o unpack_i16.o unpack_r4.o unpack_r8.o unpack_r10.o unpack_r16.o unpack_c4.o unpack_c8.o unpack_c10.o unpack_c16.o spread_i1.o spread_i2.o spread_i4.o spread_i8.o spread_i16.o spread_r4.o spread_r8.o spread_r10.o spread_r16.o spread_c4.o spread_c8.o spread_c10.o spread_c16.o cshift0_i1.o cshift0_i2.o cshift0_i4.o cshift0_i8.o cshift0_i16.o cshift0_r4.o cshift0_r8.o cshift0_r10.o cshift0_r16.o cshift0_c4.o cshift0_c8.o cshift0_c10.o cshift0_c16.o close.o file_pos.o format.o inquire.o intrinsics.o list_read.o lock.o open.o read.o size_from_kind.o transfer.o unit.o unix.o write.o fbuf.o associated.o abort.o access.o args.o bit_intrinsics.o c99_functions.o chdir.o chmod.o clock.o cpu_time.o cshift0.o ctime.o date_and_time.o dtime.o env.o eoshift0.o eoshift2.o erfc_scaled.o etime.o exit.o extends_type_of.o fnum.o gerror.o getcwd.o getlog.o getXid.o hostnm.o ierrno.o ishftc.o iso_c_generated_procs.o iso_c_binding.o kill.o link.o malloc.o mvbits.o move_alloc.o pack_generic.o perror.o selected_char_kind.o signal.o size.o sleep.o spread_generic.o string_intrinsics.o system.o rand.o random.o rename.o reshape_generic.o reshape_packed.o selected_int_kind.o selected_real_kind.o stat.o symlnk.o system_clock.o time.o transpose_generic.o umask.o unlink.o unpack_generic.o in_pack_generic.o in_unpack_generic.o _abs_c4.o _abs_c8.o _abs_c10.o _abs_c16.o _abs_i4.o _abs_i8.o _abs_i16.o _abs_r4.o _abs_r8.o _abs_r10.o _abs_r16.o _aimag_c4.o _aimag_c8.o _aimag_c10.o _aimag_c16.o _exp_r4.o _exp_r8.o _exp_r10.o _exp_r16.o _exp_c4.o _exp_c8.o _exp_c10.o _exp_c16.o _log_r4.o _log_r8.o _log_r10.o _log_r16.o _log_c4.o _log_c8.o _log_c10.o _log_c16.o _log10_r4.o _log10_r8.o _log10_r10.o _log10_r16.o _sqrt_r4.o _sqrt_r8.o _sqrt_r10.o _sqrt_r16.o _sqrt_c4.o _sqrt_c8.o _sqrt_c10.o _sqrt_c16.o _asin_r4.o _asin_r8.o _asin_r10.o _asin_r16.o _asinh_r4.o _asinh_r8.o _asinh_r10.o _asinh_r16.o _acos_r4.o _acos_r8.o _acos_r10.o _acos_r16.o _acosh_r4.o _acosh_r8.o _acosh_r10.o _acosh_r16.o _atan_r4.o _atan_r8.o _atan_r10.o _atan_r16.o _atanh_r4.o _atanh_r8.o _atanh_r10.o _atanh_r16.o _sin_r4.o _sin_r8.o _sin_r10.o _sin_r16.o _sin_c4.o _sin_c8.o _sin_c10.o _sin_c16.o _cos_r4.o _cos_r8.o _cos_r10.o _cos_r16.o _cos_c4.o _cos_c8.o _cos_c10.o _cos_c16.o _tan_r4.o _tan_r8.o _tan_r10.o _tan_r16.o _sinh_r4.o _sinh_r8.o _sinh_r10.o _sinh_r16.o _cosh_r4.o _cosh_r8.o _cosh_r10.o _cosh_r16.o _tanh_r4.o _tanh_r8.o _tanh_r10.o _tanh_r16.o _conjg_c4.o _conjg_c8.o _conjg_c10.o _conjg_c16.o _aint_r4.o _aint_r8.o _aint_r10.o _aint_r16.o _anint_r4.o _anint_r8.o _anint_r10.o _anint_r16.o _sign_i4.o _sign_i8.o _sign_i16.o _sign_r4.o _sign_r8.o _sign_r10.o _sign_r16.o _dim_i4.o _dim_i8.o _dim_i16.o _dim_r4.o _dim_r8.o _dim_r10.o _dim_r16.o _atan2_r4.o _atan2_r8.o _atan2_r10.o _atan2_r16.o _mod_i4.o _mod_i8.o _mod_i16.o _mod_r4.o _mod_r8.o _mod_r10.o _mod_r16.o misc_specifics.o dprod_r8.o f2c_specifics.o /usr/bin/ranlib: file: .libs/libgfortran.a(all_l16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(any_l16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(count_16_l.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_16_i1.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_16_i2.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_16_i4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_16_i8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_4_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_8_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_16_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_16_r4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_16_r8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_16_r10.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_4_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_8_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc0_16_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_16_i1.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_16_i2.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_16_i4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_16_i8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_4_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_8_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_16_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_16_r4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_16_r8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_16_r10.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_4_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_8_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxloc1_16_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxval_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(maxval_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_16_i1.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_16_i2.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_16_i4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_16_i8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_4_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_8_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_16_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_16_r4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_16_r8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_16_r10.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_4_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_8_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc0_16_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_16_i1.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_16_i2.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_16_i4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_16_i8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_4_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_8_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_16_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_16_r4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_16_r8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_16_r10.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_4_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_8_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minloc1_16_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minval_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(minval_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(product_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(product_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(product_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(sum_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(sum_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(sum_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(matmul_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(matmul_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(matmul_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(matmul_l16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(transpose_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(transpose_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(transpose_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(shape_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(eoshift1_16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(eoshift3_16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(cshift1_16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(reshape_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(reshape_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(reshape_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(in_pack_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(in_pack_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(in_pack_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(in_unpack_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(in_unpack_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(in_unpack_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(exponent_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(fraction_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(nearest_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(set_exponent_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_i16_i4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_c16_i4.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_i16_i8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_r16_i8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_c16_i8.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_i4_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_i8_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_i16_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_r4_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_r8_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_r10_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_r16_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_c4_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_c8_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_c10_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pow_c16_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(rrspacing_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(spacing_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pack_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pack_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(pack_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(unpack_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(unpack_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(unpack_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(spread_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(spread_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(spread_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(cshift0_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(cshift0_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(cshift0_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(bit_intrinsics.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_abs_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_abs_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_abs_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_aimag_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_exp_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_exp_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_log_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_log_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_log10_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_sqrt_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_sqrt_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_asin_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_asinh_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_acos_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_acosh_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_atan_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_atanh_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_sin_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_sin_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_cos_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_cos_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_tan_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_sinh_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_cosh_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_tanh_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_conjg_c16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_aint_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_anint_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_sign_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_sign_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_dim_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_dim_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_atan2_r16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_mod_i16.o) has no symbols /usr/bin/ranlib: file: .libs/libgfortran.a(_mod_r16.o) has no symbols libtool: link: ranlib .libs/libgfortran.a ranlib: file: .libs/libgfortran.a(all_l16.o) has no symbols ranlib: file: .libs/libgfortran.a(any_l16.o) has no symbols ranlib: file: .libs/libgfortran.a(count_16_l.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_16_i1.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_16_i2.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_16_i4.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_16_i8.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_4_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_8_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_16_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_16_r4.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_16_r8.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_16_r10.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_4_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_8_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc0_16_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_16_i1.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_16_i2.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_16_i4.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_16_i8.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_4_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_8_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_16_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_16_r4.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_16_r8.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_16_r10.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_4_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_8_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxloc1_16_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxval_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(maxval_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_16_i1.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_16_i2.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_16_i4.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_16_i8.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_4_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_8_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_16_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_16_r4.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_16_r8.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_16_r10.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_4_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_8_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc0_16_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_16_i1.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_16_i2.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_16_i4.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_16_i8.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_4_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_8_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_16_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_16_r4.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_16_r8.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_16_r10.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_4_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_8_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(minloc1_16_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(minval_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(minval_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(product_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(product_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(product_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(sum_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(sum_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(sum_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(matmul_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(matmul_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(matmul_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(matmul_l16.o) has no symbols ranlib: file: .libs/libgfortran.a(transpose_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(transpose_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(transpose_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(shape_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(eoshift1_16.o) has no symbols ranlib: file: .libs/libgfortran.a(eoshift3_16.o) has no symbols ranlib: file: .libs/libgfortran.a(cshift1_16.o) has no symbols ranlib: file: .libs/libgfortran.a(reshape_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(reshape_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(reshape_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(in_pack_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(in_pack_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(in_pack_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(in_unpack_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(in_unpack_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(in_unpack_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(exponent_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(fraction_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(nearest_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(set_exponent_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_i16_i4.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_c16_i4.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_i16_i8.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_r16_i8.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_c16_i8.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_i4_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_i8_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_i16_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_r4_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_r8_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_r10_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_r16_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_c4_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_c8_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_c10_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pow_c16_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(rrspacing_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(spacing_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(pack_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(pack_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(pack_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(unpack_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(unpack_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(unpack_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(spread_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(spread_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(spread_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(cshift0_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(cshift0_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(cshift0_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(bit_intrinsics.o) has no symbols ranlib: file: .libs/libgfortran.a(_abs_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(_abs_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(_abs_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_aimag_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(_exp_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_exp_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(_log_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_log_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(_log10_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_sqrt_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_sqrt_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(_asin_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_asinh_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_acos_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_acosh_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_atan_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_atanh_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_sin_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_sin_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(_cos_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_cos_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(_tan_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_sinh_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_cosh_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_tanh_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_conjg_c16.o) has no symbols ranlib: file: .libs/libgfortran.a(_aint_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_anint_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_sign_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(_sign_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_dim_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(_dim_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_atan2_r16.o) has no symbols ranlib: file: .libs/libgfortran.a(_mod_i16.o) has no symbols ranlib: file: .libs/libgfortran.a(_mod_r16.o) has no symbols libtool: link: ( cd ".libs" && rm -f "libgfortran.la" && ln -s "../libgfortran.la" "libgfortran.la" ) make: *** [all] Error 2 ### execution of /var/tmp/tmp.1.BKAS5P failed, exit code 2 Regressing out r159371 restores the bootstrap.
I also noticed that in gcc/config/darwin.c that we have... /* Do what output_addr_const will do when we actually call it. */ if (SYMBOL_REF_DECL (p->symbol)) mark_decl_referenced (SYMBOL_REF_DECL (p->symbol)); in machopic_validate_stub_or_non_lazy_ptr(). We are no longer synchronized with output_addr_const() so perhaps this should now be... /* Do what output_addr_const will do when we actually call it. */ if (SYMBOL_REF_DECL (p->symbol)) { mark_decl_referenced (SYMBOL_REF_DECL (p->symbol)); assemble_external (SYMBOL_REF_DECL (p->symbol)); }
It appears that only darwin uses the set_user_assembler_name() call so we ought to be able to restore the previous behavior with... Index: gcc/varpool.c =================================================================== --- gcc/varpool.c (revision 159421) +++ gcc/varpool.c (working copy) @@ -321,6 +321,14 @@ || node->force_output) return true; + + /* ??? If the assembler name is set by hand, it is possible to assemble + the name later after finalizing the function and the fact is noticed + in assemble_name then. This is arguably a bug. */ + if (TARGET_MACHO && DECL_ASSEMBLER_NAME_SET_P (decl) + && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))) + return true; + /* Externally visible variables must be output. The exception is COMDAT variables that must be output only when they are needed. */ if (TREE_PUBLIC (decl)
The actual failure is: libtool: compile: /opt/gcc/build_w/./gcc/xgcc -B/opt/gcc/build_w/./gcc/ -B/opt/gcc/gcc4.6w/x86_64-apple-darwin10.3.0/bin/ -B/opt/gcc/gcc4.6w/x86_64-a pple-darwin10.3.0/lib/ -isystem /opt/gcc/gcc4.6w/x86_64-apple-darwin10.3.0/include -isystem /opt/gcc/gcc4.6w/x86_64-apple-darwin10.3.0/sys-include -DHAVE_CONFIG_H -I. -I../../../work/libgfortran -iquote../../../work/libgfortran/io -I../../../work/libgfortran/../gcc -I../../../work/libgfortran/../gcc/config -I../.././gcc -D_GNU_SOURCE -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wextra -Wwrite-strings -fcx-fortran-rules -ffunction-sections -fdata-sections -g -O2 -MT fbuf.lo -MD -MP -MF .deps/fbuf.Tpo -c ../../../work/libgfortran/io/fbuf.c -fno-common -DPIC -o .libs/fbuf.old: warning: cannot export hidden symbol std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf() from .libs/comp lex_io.o ld: warning: cannot export hidden symbol std::basic_stringbuf<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_stringbuf() from .libs/complex_io.o ld: warning: cannot export hidden symbol std::ctype<char>::do_widen(char) const from .libs/ctype.o ld: warning: cannot export hidden symbol std::ctype<char>::do_narrow(char, char) const from .libs/ctype.o ld: warning: cannot export hidden symbol std::ctype<char>::do_narrow(char const*, char const*, char, char*) const from .libs/ctype.o ld: warning: cannot export hidden symbol std::ctype<char>::do_widen(char const*, char const*, char*) const from .libs/ctype.o ld: warning: cannot export hidden symbol std::underflow_error::~underflow_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::underflow_error::~underflow_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::overflow_error::~overflow_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::overflow_error::~overflow_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::range_error::~range_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::range_error::~range_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::out_of_range::~out_of_range() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::out_of_range::~out_of_range() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::length_error::~length_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::length_error::~length_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::invalid_argument::~invalid_argument() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::invalid_argument::~invalid_argument() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::domain_error::~domain_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::domain_error::~domain_error() from .libs/functexcept.o ld: warning: cannot export hidden symbol std::system_error::system_error(std::error_code) from .libs/functexcept.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::xsputn(char const*, long) from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::xsgetn(char*, long) from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::~stdio_sync_filebuf() from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::~stdio_sync_filebuf() from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::xsputn(wchar_t const*, long) from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::xsgetn(wchar_t*, long) from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::~stdio_sync_filebuf() from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::~stdio_sync_filebuf() from .libs/misc-inst.o ld: warning: cannot export hidden symbol std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf() from .libs/sstream-inst.o ld: warning: cannot export hidden symbol std::basic_stringbuf<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_stringbuf() from .libs/sstream-inst.o ld: warning: cannot export hidden symbol __cxxabiv1::__pbase_type_info::__pointer_catch(__cxxabiv1::__pbase_type_info const*, void**, unsigned int) const from ../libsupc++/.libs/libsupc++convenience.a(pbase_type_info.o) ld: codegen problem, can't use rel32 to external symbol ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global in ___cxa_get_globals_fast from ../libsupc++/.libs/libsupc++convenience.a(eh_globals.o) collect2: ld returned 1 exit status make[4]: *** [libstdc++.la] Error 1 make[3]: *** [all-recursive] Error 1 make[2]: *** [all] Error 2 Looking at my logs, I noticed that I successfully built revision 159376 with the Iain's patch in http://gcc.gnu.org/ml/gcc-patches/2010-05/txt00055.txt , does it make any sense?
Subject: Re: r159371 breaks bootstrap on x86_64-apple-darwin10 > It appears that only darwin uses the set_user_assembler_name() call so we > ought to be able to restore the previous behavior with... Does this help and if so, does changing the TREE_SYMBOL_REFERENCED set to mark_decl referenced as you proposed earlier work? Honza
(In reply to comment #3) > The actual failure is: > ld: codegen problem, can't use rel32 to external symbol > ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global in ___cxa_get_globals_fast > from ../libsupc++/.libs/libsupc++convenience.a(eh_globals.o) which (probably) makes this related to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132 (although I note the "codegen problem, can't use rel32 to external symbol" as distinct from a missing symbol - possibly a misleading err msg of course). > Looking at my logs, I noticed that I successfully built revision 159376 with > the Iain's patch in http://gcc.gnu.org/ml/gcc-patches/2010-05/txt00055.txt , > does it make any sense? that patch should make no difference to this problem, and the problem it was addressing was solved by a different mechanism. I am trying to build 159429 on x86_64 and powerpc64 at present... (it bootstraps on i686).
The bootstrap failure of x86_64-apple-darwin10 seems gone at revision 159429 (now building libjava).
(In reply to comment #6) > The bootstrap failure of x86_64-apple-darwin10 seems gone at revision 159429 > (now building libjava). confirmed on an un-patched tree - I think this can be closed.
> confirmed on an un-patched tree - I think this can be closed. I would prefer to leave it open until the causes of the breakage and the fix are known.
The failure is back at revision 159433, now with: ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::xsgetn(char*, long) from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::~stdio_sync_filebuf() from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::~stdio_sync_filebuf() from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::xsputn(wchar_t const*, long) from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::xsgetn(wchar_t*, long) from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::~stdio_sync_filebuf() from .libs/misc-inst.o ld: warning: cannot export hidden symbol __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::~stdio_sync_filebuf() from .libs/misc-inst.o ld: warning: cannot export hidden symbol std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf() from .libs/sstream-inst.o ld: warning: cannot export hidden symbol std::basic_stringbuf<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_stringbuf() from .libs/sstream-inst.o ld: warning: cannot export hidden symbol __cxxabiv1::__pbase_type_info::__pointer_catch(__cxxabiv1::__pbase_type_info const*, void**, unsigned int) const from ../libsupc++/.libs/libsupc++convenience.a(pbase_type_info.o) ld: codegen problem, can't use rel32 to external symbol ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global in ___cxa_get_globals_fast from ../libsupc++/.libs/libsupc++convenience.a(eh_globals.o) collect2: ld returned 1 exit status make[4]: *** [libstdc++.la] Error 1
Suppressed as by reverting r159371 with... diff -uNr gcc-4.6-20100514/gcc/varpool.c gcc-4.6-20100514.hubicka/gcc/varpool.c --- gcc-4.6-20100514/gcc/varpool.c 2010-05-14 19:37:24.000000000 -0400 +++ gcc-4.6-20100514.hubicka/gcc/varpool.c 2010-05-14 19:45:35.000000000 -0400 @@ -321,6 +321,13 @@ || node->force_output) return true; + /* ??? If the assembler name is set by hand, it is possible to assemble + the name later after finalizing the function and the fact is noticed + in assemble_name then. This is arguably a bug. */ + if (TARGET_MACHO && DECL_ASSEMBLER_NAME_SET_P (decl) + && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))) + return true; + /* Externally visible variables must be output. The exception is COMDAT variables that must be output only when they are needed. */ if (TREE_PUBLIC (decl) to reintroduce this for darwin only.
(In reply to comment #10) > Suppressed as by reverting r159371 with... Confirmed at revision 159435.
I have looked to my logs and the warnings ld: warning: cannot export hidden symbol std::basic_stringbuf<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_stringbuf() from .libs/complex_io.o ... are already in my make log for revision 154675. In fact the key error is the same in the failures I have recorded: ld: codegen problem, can't use rel32 to external symbol ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global in ___cxa_get_globals_fast from ../libsupc++/.libs/libsupc++convenience.a(eh_globals.o)
(In reply to comment #12) > ld: codegen problem, can't use rel32 to external symbol > ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global in ___cxa_get_globals_fast > from ../libsupc++/.libs/libsupc++convenience.a(eh_globals.o) yep - this is the problem child. 1/ there is a difference between m32 and m64 (I guess, because the linker islands capability is assumed for m64 - and the emitted code is different). 2/ m64 we get this : mini-02-sno:gcc-4-6-trunk-build $ otool -rv x86_64-apple-darwin10//libstdc++-v3/libsupc++/.libs/libsupc++.a |grep emu 0000002c True long True BRANCH False ___emutls_get_address 00000024 True long True SIGNED False ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global 0000000c True long True BRANCH False ___emutls_get_address 00000004 True long True SIGNED False ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global note ................ ^^^ these are long rather than quad. mini-02-sno:gcc-4-6-trunk-build $ nm x86_64-apple-darwin10//libstdc++-v3/libsupc++/.libs/libsupc++.a |grep emu nm: no name list nm: no name list U ___emutls_get_address 0000000000000b40 d ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global nm: no name list note ....................... ^ this is a non-exported symbol. Possibly the reason that this fault comes & goes could be that it depends on how the data segment is laid out. that doesn't really explain why this should be repeatably affected by the reversion of 159371.. I'll try and produce some analysis of the non-working case next .. but the day job needs some attention ;)
in the compilation of eh_globals.cc: the i686-apple-darwin9 compiler does *not* produce any emutls refs (at m32 or m64) - but rather all the thread stuff is handled via pthread interfaces.
(In reply to comment #13) > (In reply to comment #12) > > 2/ m64 we get this : > mini-02-sno:gcc-4-6-trunk-build $ otool -rv > x86_64-apple-darwin10//libstdc++-v3/libsupc++/.libs/libsupc++.a |grep emu > 0000002c True long True BRANCH False ___emutls_get_address > 00000024 True long True SIGNED False > ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global > 0000000c True long True BRANCH False ___emutls_get_address > 00000004 True long True SIGNED False > ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global > > note ................ ^^^ these are long rather than quad. otool -tv : eh-appl-m64.o: (__TEXT,__text) section __ZN12_GLOBAL__N_110get_globalEv: 0000000000000000 pushq %rbp 0000000000000001 movq %rsp,%rbp 0000000000000004 leaq 0x00000000(%rip),%rdi 000000000000000b callq 0x00000010 0000000000000010 leave 0000000000000011 ret ___cxa_get_globals_fast: 0000000000000012 pushq %rbp 0000000000000013 movq %rsp,%rbp 0000000000000016 callq 0x0000001b 000000000000001b leave 000000000000001c ret ___cxa_get_globals: 000000000000001d pushq %rbp 000000000000001e movq %rsp,%rbp 0000000000000021 callq 0x00000026 0000000000000026 leave 0000000000000027 ret
leaving off the eh and debug stuff.... look at >>>>>> .text __ZN12_GLOBAL__N_110get_globalEv: LFB100: pushq %rbp LCFI0: movq %rsp, %rbp LCFI1: >>>>>> reference a variable relative to the instruction pointer???????? is this intended?? seems doomed to >>>>>> fail at some point .... leaq ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global(%rip), %rdi call ___emutls_get_address leave LCFI2: ret LFE100: .globl ___cxa_get_globals_fast ___cxa_get_globals_fast: LFB101: pushq %rbp LCFI3: movq %rsp, %rbp LCFI4: call __ZN12_GLOBAL__N_110get_globalEv leave LCFI5: ret LFE101: .globl ___cxa_get_globals ___cxa_get_globals: LFB102: pushq %rbp LCFI6: movq %rsp, %rbp LCFI7: call __ZN12_GLOBAL__N_110get_globalEv leave LCFI8: ret LFE102: .no_dead_strip ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global .data .align 5 ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global: .quad 16 .quad 8 .quad 0 .quad 0 .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1
(In reply to comment #16) > leaving off the eh and debug stuff.... look at >>>>>> > > .text > __ZN12_GLOBAL__N_110get_globalEv: > LFB100: > pushq %rbp > LCFI0: > movq %rsp, %rbp > LCFI1: > >>>>>> reference a variable relative to the instruction pointer???????? is this intended?? seems doomed to > >>>>>> fail at some point .... > leaq ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global(%rip), > %rdi well, clearly, it's intended - non-emutls code does the same thing (when compiled m64). However, the point remains that a 32bit offset is going to fail to reach variables as soon as the total space occupied > 4Gb it seems maybe we have a code-gen problem ?
(In reply to comment #13) > (In reply to comment #12) > that doesn't really explain why this should be repeatably affected by the > reversion of 159371.. Yesterday (on an initially failing bootstrap) I applied the suggestion @ comment #2 and the problem cleared. However, I then removed this change and the problem still cleared. the next time this happens to any of the interested parties: could you try make clean-target-libstdc++-v3 make <options you usually use> all-target -- and see if the phenomenon is essentially randomly dependent on the layout of the code?
Subject: Re: r159371 breaks bootstrap on x86_64-apple-darwin10 > > > ------- Comment #17 from iains at gcc dot gnu dot org 2010-05-16 13:51 ------- > (In reply to comment #16) > > leaving off the eh and debug stuff.... look at >>>>>> > > > > .text > > __ZN12_GLOBAL__N_110get_globalEv: > > LFB100: > > pushq %rbp > > LCFI0: > > movq %rsp, %rbp > > LCFI1: > > >>>>>> reference a variable relative to the instruction pointer???????? is this intended?? seems doomed to > > >>>>>> fail at some point .... > > leaq ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global(%rip), > > %rdi > > well, clearly, it's intended - non-emutls code does the same thing (when > compiled m64). > However, the point remains that a 32bit offset is going to fail to reach > variables as soon as the total space occupied > 4Gb > > it seems maybe we have a code-gen problem ? Well, you know that emults will be bound withtin the same DSO, so you are safe. This is small PIC model. Honza
(In reply to comment #19) > Subject: Re: r159371 breaks bootstrap on > x86_64-apple-darwin10 > > > ------- Comment #17 from iains at gcc dot gnu dot org 2010-05-16 13:51 ------- > > (In reply to comment #16) > > > leaving off the eh and debug stuff.... look at >>>>>> > > > > > > .text > > > __ZN12_GLOBAL__N_110get_globalEv: > > > LFB100: > > > pushq %rbp > > > LCFI0: > > > movq %rsp, %rbp > > > LCFI1: > > > >>>>>> reference a variable relative to the instruction pointer???????? is this intended?? seems doomed to > > > >>>>>> fail at some point .... > > > leaq ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global(%rip), > > > %rdi > > > > well, clearly, it's intended - non-emutls code does the same thing (when > > compiled m64). > > However, the point remains that a 32bit offset is going to fail to reach > > variables as soon as the total space occupied > 4Gb > > > > it seems maybe we have a code-gen problem ? > > Well, you know that emults will be bound withtin the same DSO, so you are safe. > This is small PIC model. hmmm.. I don't quite understand this.. the original ld error was: ld: codegen problem, can't use rel32 to external symbol ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global in ___cxa_get_globals_fast is the loader not entitled to place .data and .text wherever it likes in the 64bit address space? ... in any event, potentially, further apart than can be reached by a +/- 31 bits. .. what happens when the data size passes 2Gb? (having said that - I agree that it doesn't make a lot of sense to see this failure when building libstdc++ ...)
Subject: Re: r159371 breaks bootstrap on x86_64-apple-darwin10 > > hmmm.. I don't quite understand this.. > the original ld error was: > ld: codegen problem, can't use rel32 to external symbol > ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global in ___cxa_get_globals_fast > > is the loader not entitled to place .data and .text wherever it likes in the > 64bit address space? > ... in any event, potentially, further apart than can be reached by a +/- 31 > bits. > .. what happens when the data size passes 2Gb? There -mcmodel=small/medium/large flag to control this. By default compiler assume that your binary is smaller than 2GB. For PIC we make same assumption and we require loader to keep code and data section together to make RIP relative addressing work. Otherwise it would be of no use ;) Honza
I have open pr44163 for the testsuite failures on ppc-darwin. Since they are fixed by reverting revision 159371, I think pr44163 is related to this one (if not a duplicate).
Although it may be unrelated, pr44163 reports intermittent bootstrap failures related to TLS found or not.
AFAIK this has been cleared for some time now.