Bug 44146 - r159371 breaks bootstrap on x86_64-apple-darwin10
Summary: r159371 breaks bootstrap on x86_64-apple-darwin10
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: bootstrap (show other bugs)
Version: 4.6.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-15 02:18 UTC by Jack Howarth
Modified: 2010-07-10 19:48 UTC (History)
5 users (show)

See Also:
Host: x86_64-apple-darwin10
Target: x86_64-apple-darwin10
Build: x86_64-apple-darwin10
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jack Howarth 2010-05-15 02:18:14 UTC
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.
Comment 1 Jack Howarth 2010-05-15 02:25:22 UTC
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));
        }
Comment 2 Jack Howarth 2010-05-15 05:16:37 UTC
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)
Comment 3 Dominique d'Humieres 2010-05-15 07:36:54 UTC
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?
Comment 4 Jan Hubicka 2010-05-15 08:41:21 UTC
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
Comment 5 Iain Sandoe 2010-05-15 08:47:18 UTC
(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).


Comment 6 Dominique d'Humieres 2010-05-15 08:53:27 UTC
The bootstrap failure of x86_64-apple-darwin10 seems gone at revision 159429 (now building libjava).
Comment 7 Iain Sandoe 2010-05-15 09:29:57 UTC
(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.
Comment 8 Dominique d'Humieres 2010-05-15 09:43:49 UTC
> 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.
Comment 9 Dominique d'Humieres 2010-05-15 15:45:00 UTC
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
Comment 10 Jack Howarth 2010-05-15 18:48:24 UTC
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.
Comment 11 Dominique d'Humieres 2010-05-15 19:27:40 UTC
(In reply to comment #10)
> Suppressed as by reverting r159371 with...

Confirmed at revision 159435.
Comment 12 Dominique d'Humieres 2010-05-15 21:50:22 UTC
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)
Comment 13 Iain Sandoe 2010-05-16 00:24:07 UTC
(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 ;)
Comment 14 Iain Sandoe 2010-05-16 00:56:29 UTC
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.
Comment 15 Iain Sandoe 2010-05-16 09:32:53 UTC
(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
Comment 16 Iain Sandoe 2010-05-16 12:56:22 UTC
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
Comment 17 Iain Sandoe 2010-05-16 13:51:17 UTC
(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 ?
Comment 18 Iain Sandoe 2010-05-16 14:26:02 UTC
(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?

Comment 19 Jan Hubicka 2010-05-16 15:00:47 UTC
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
Comment 20 Iain Sandoe 2010-05-16 15:15:51 UTC
(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++ ...)
Comment 21 Jan Hubicka 2010-05-16 17:22:29 UTC
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
Comment 22 Dominique d'Humieres 2010-05-17 07:21:55 UTC
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).
Comment 23 Dominique d'Humieres 2010-05-17 07:25:58 UTC
Although it may be unrelated, pr44163 reports intermittent bootstrap failures related to TLS found or not.
Comment 24 Iain Sandoe 2010-07-10 19:48:58 UTC
AFAIK this has been cleared for some time now.