about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.m68k301
-rw-r--r--sysdeps/m68k/Implies1
-rw-r--r--sysdeps/m68k/Makefile3
-rw-r--r--sysdeps/m68k/__longjmp.c3
-rw-r--r--sysdeps/m68k/asm-syntax.h5
-rw-r--r--sysdeps/m68k/bits/byteswap.h2
-rw-r--r--sysdeps/m68k/bits/setjmp.h2
-rw-r--r--sysdeps/m68k/coldfire/bits/atomic.h69
-rw-r--r--sysdeps/m68k/coldfire/fpu/e_sqrt.c24
-rw-r--r--sysdeps/m68k/coldfire/fpu/e_sqrtf.c25
-rw-r--r--sysdeps/m68k/coldfire/fpu/fraiseexcpt.c67
-rw-r--r--sysdeps/m68k/coldfire/fpu/libm-test-ulps820
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_fabs.c29
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_fabsf.c25
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_lrint.c30
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_lrintf.c26
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_rint.c29
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_rintf.c26
-rw-r--r--sysdeps/m68k/coldfire/shlib-versions1
-rw-r--r--sysdeps/m68k/dl-machine.h9
-rw-r--r--sysdeps/m68k/dl-trampoline.S54
-rw-r--r--sysdeps/m68k/fpu/fegetenv.c6
-rw-r--r--sysdeps/m68k/fpu/feholdexcpt.c7
-rw-r--r--sysdeps/m68k/fpu/fesetenv.c15
-rw-r--r--sysdeps/m68k/fpu/fesetround.c1
-rw-r--r--sysdeps/m68k/fpu_control.h14
-rw-r--r--sysdeps/m68k/ldsodefs.h43
-rw-r--r--sysdeps/m68k/m680x0/Implies1
-rw-r--r--sysdeps/m68k/m680x0/Makefile2
-rw-r--r--sysdeps/m68k/m680x0/add_n.S (renamed from sysdeps/m68k/add_n.S)0
-rw-r--r--sysdeps/m68k/m680x0/bits/huge_vall.h (renamed from sysdeps/m68k/bits/huge_vall.h)0
-rw-r--r--sysdeps/m68k/m680x0/bits/mathdef.h (renamed from sysdeps/m68k/bits/mathdef.h)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/Makefile (renamed from sysdeps/m68k/fpu/Makefile)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/bits/mathinline.h (renamed from sysdeps/m68k/fpu/bits/mathinline.h)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/branred.c (renamed from sysdeps/m68k/fpu/branred.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/doasin.c (renamed from sysdeps/m68k/fpu/doasin.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/dosincos.c (renamed from sysdeps/m68k/fpu/dosincos.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_acos.c (renamed from sysdeps/m68k/fpu/e_acos.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_acosf.c (renamed from sysdeps/m68k/fpu/e_acosf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_acosl.c (renamed from sysdeps/m68k/fpu/e_acosl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_asin.c (renamed from sysdeps/m68k/fpu/e_asin.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_asinf.c (renamed from sysdeps/m68k/fpu/e_asinf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_asinl.c (renamed from sysdeps/m68k/fpu/e_asinl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_atan2.c (renamed from sysdeps/m68k/fpu/e_atan2.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_atan2f.c (renamed from sysdeps/m68k/fpu/e_atan2f.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_atan2l.c (renamed from sysdeps/m68k/fpu/e_atan2l.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_atanh.c (renamed from sysdeps/m68k/fpu/e_atanh.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_atanhf.c (renamed from sysdeps/m68k/fpu/e_atanhf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_atanhl.c (renamed from sysdeps/m68k/fpu/e_atanhl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_cosh.c (renamed from sysdeps/m68k/fpu/e_cosh.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_coshf.c (renamed from sysdeps/m68k/fpu/e_coshf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_coshl.c (renamed from sysdeps/m68k/fpu/e_coshl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_exp.c (renamed from sysdeps/m68k/fpu/e_exp.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_exp10.c (renamed from sysdeps/m68k/fpu/e_exp10.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_exp10f.c (renamed from sysdeps/m68k/fpu/e_exp10f.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_exp10l.c (renamed from sysdeps/m68k/fpu/e_exp10l.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_exp2.c (renamed from sysdeps/m68k/fpu/e_exp2.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_exp2f.c (renamed from sysdeps/m68k/fpu/e_exp2f.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_exp2l.c (renamed from sysdeps/m68k/fpu/e_exp2l.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_expf.c (renamed from sysdeps/m68k/fpu/e_expf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_expl.c (renamed from sysdeps/m68k/fpu/e_expl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_fmod.c (renamed from sysdeps/m68k/fpu/e_fmod.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_fmodf.c (renamed from sysdeps/m68k/fpu/e_fmodf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_fmodl.c (renamed from sysdeps/m68k/fpu/e_fmodl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_log.c (renamed from sysdeps/m68k/fpu/e_log.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_log10.c (renamed from sysdeps/m68k/fpu/e_log10.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_log10f.c (renamed from sysdeps/m68k/fpu/e_log10f.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_log10l.c (renamed from sysdeps/m68k/fpu/e_log10l.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_log2.c (renamed from sysdeps/m68k/fpu/e_log2.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_log2f.c (renamed from sysdeps/m68k/fpu/e_log2f.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_log2l.c (renamed from sysdeps/m68k/fpu/e_log2l.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_logf.c (renamed from sysdeps/m68k/fpu/e_logf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_logl.c (renamed from sysdeps/m68k/fpu/e_logl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_pow.c (renamed from sysdeps/m68k/fpu/e_pow.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_powf.c (renamed from sysdeps/m68k/fpu/e_powf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_powl.c (renamed from sysdeps/m68k/fpu/e_powl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_rem_pio2.c (renamed from sysdeps/m68k/fpu/e_rem_pio2.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c (renamed from sysdeps/m68k/fpu/e_rem_pio2f.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_rem_pio2l.c (renamed from sysdeps/m68k/fpu/e_rem_pio2l.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_remainder.c (renamed from sysdeps/m68k/fpu/e_remainder.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_remainderf.c (renamed from sysdeps/m68k/fpu/e_remainderf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_remainderl.c (renamed from sysdeps/m68k/fpu/e_remainderl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_scalb.c (renamed from sysdeps/m68k/fpu/e_scalb.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_scalbf.c (renamed from sysdeps/m68k/fpu/e_scalbf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_scalbl.c (renamed from sysdeps/m68k/fpu/e_scalbl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_sinh.c (renamed from sysdeps/m68k/fpu/e_sinh.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_sinhf.c (renamed from sysdeps/m68k/fpu/e_sinhf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_sinhl.c (renamed from sysdeps/m68k/fpu/e_sinhl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_sqrt.c (renamed from sysdeps/m68k/fpu/e_sqrt.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_sqrtf.c (renamed from sysdeps/m68k/fpu/e_sqrtf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_sqrtl.c (renamed from sysdeps/m68k/fpu/e_sqrtl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/fraiseexcpt.c (renamed from sysdeps/m68k/fpu/fraiseexcpt.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/halfulp.c (renamed from sysdeps/m68k/fpu/halfulp.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_cos.c (renamed from sysdeps/m68k/fpu/k_cos.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_cosf.c (renamed from sysdeps/m68k/fpu/k_cosf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_cosl.c (renamed from sysdeps/m68k/fpu/k_cosl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_rem_pio2.c (renamed from sysdeps/m68k/fpu/k_rem_pio2.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c (renamed from sysdeps/m68k/fpu/k_rem_pio2f.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_rem_pio2l.c (renamed from sysdeps/m68k/fpu/k_rem_pio2l.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_sin.c (renamed from sysdeps/m68k/fpu/k_sin.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_sinf.c (renamed from sysdeps/m68k/fpu/k_sinf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_sinl.c (renamed from sysdeps/m68k/fpu/k_sinl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_tan.c (renamed from sysdeps/m68k/fpu/k_tan.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_tanf.c (renamed from sysdeps/m68k/fpu/k_tanf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_tanl.c (renamed from sysdeps/m68k/fpu/k_tanl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/libm-test-ulps (renamed from sysdeps/m68k/fpu/libm-test-ulps)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/mathimpl.h (renamed from sysdeps/m68k/fpu/mathimpl.h)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/mpa.c (renamed from sysdeps/m68k/fpu/mpa.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/mpatan.c (renamed from sysdeps/m68k/fpu/mpatan.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/mpatan2.c (renamed from sysdeps/m68k/fpu/mpatan2.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/mpexp.c (renamed from sysdeps/m68k/fpu/mpexp.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/mplog.c (renamed from sysdeps/m68k/fpu/mplog.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/mpsqrt.c (renamed from sysdeps/m68k/fpu/mpsqrt.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/mptan.c (renamed from sysdeps/m68k/fpu/mptan.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_atan.c (renamed from sysdeps/m68k/fpu/s_atan.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_atanf.c (renamed from sysdeps/m68k/fpu/s_atanf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_atanl.c (renamed from sysdeps/m68k/fpu/s_atanl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ccos.c (renamed from sysdeps/m68k/fpu/s_ccos.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ccosf.c (renamed from sysdeps/m68k/fpu/s_ccosf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ccosh.c (renamed from sysdeps/m68k/fpu/s_ccosh.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ccoshf.c (renamed from sysdeps/m68k/fpu/s_ccoshf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ccoshl.c (renamed from sysdeps/m68k/fpu/s_ccoshl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ccosl.c (renamed from sysdeps/m68k/fpu/s_ccosl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ceil.c (renamed from sysdeps/m68k/fpu/s_ceil.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ceilf.c (renamed from sysdeps/m68k/fpu/s_ceilf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ceill.c (renamed from sysdeps/m68k/fpu/s_ceill.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cexp.c (renamed from sysdeps/m68k/fpu/s_cexp.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cexpf.c (renamed from sysdeps/m68k/fpu/s_cexpf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cexpl.c (renamed from sysdeps/m68k/fpu/s_cexpl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cos.c (renamed from sysdeps/m68k/fpu/s_cos.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cosf.c (renamed from sysdeps/m68k/fpu/s_cosf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cosl.c (renamed from sysdeps/m68k/fpu/s_cosl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csin.c (renamed from sysdeps/m68k/fpu/s_csin.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csinf.c (renamed from sysdeps/m68k/fpu/s_csinf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csinh.c (renamed from sysdeps/m68k/fpu/s_csinh.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csinhf.c (renamed from sysdeps/m68k/fpu/s_csinhf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csinhl.c (renamed from sysdeps/m68k/fpu/s_csinhl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csinl.c (renamed from sysdeps/m68k/fpu/s_csinl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_expm1.c (renamed from sysdeps/m68k/fpu/s_expm1.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_expm1f.c (renamed from sysdeps/m68k/fpu/s_expm1f.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_expm1l.c (renamed from sysdeps/m68k/fpu/s_expm1l.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_fabs.c (renamed from sysdeps/m68k/fpu/s_fabs.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_fabsf.c (renamed from sysdeps/m68k/fpu/s_fabsf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_fabsl.c (renamed from sysdeps/m68k/fpu/s_fabsl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_finite.c (renamed from sysdeps/m68k/fpu/s_finite.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_finitef.c (renamed from sysdeps/m68k/fpu/s_finitef.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_finitel.c (renamed from sysdeps/m68k/fpu/s_finitel.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_floor.c (renamed from sysdeps/m68k/fpu/s_floor.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_floorf.c (renamed from sysdeps/m68k/fpu/s_floorf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_floorl.c (renamed from sysdeps/m68k/fpu/s_floorl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c (renamed from sysdeps/m68k/fpu/s_fpclassifyl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_frexp.c (renamed from sysdeps/m68k/fpu/s_frexp.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_frexpf.c (renamed from sysdeps/m68k/fpu/s_frexpf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_frexpl.c (renamed from sysdeps/m68k/fpu/s_frexpl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ilogb.c (renamed from sysdeps/m68k/fpu/s_ilogb.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ilogbf.c (renamed from sysdeps/m68k/fpu/s_ilogbf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ilogbl.c (renamed from sysdeps/m68k/fpu/s_ilogbl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_isinf.c (renamed from sysdeps/m68k/fpu/s_isinf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_isinff.c (renamed from sysdeps/m68k/fpu/s_isinff.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_isinfl.c (renamed from sysdeps/m68k/fpu/s_isinfl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_isnan.c (renamed from sysdeps/m68k/fpu/s_isnan.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_isnanf.c (renamed from sysdeps/m68k/fpu/s_isnanf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_isnanl.c (renamed from sysdeps/m68k/fpu/s_isnanl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_llrint.c (renamed from sysdeps/m68k/fpu/s_llrint.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_llrintf.c (renamed from sysdeps/m68k/fpu/s_llrintf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_llrintl.c (renamed from sysdeps/m68k/fpu/s_llrintl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_log1p.c (renamed from sysdeps/m68k/fpu/s_log1p.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_log1pf.c (renamed from sysdeps/m68k/fpu/s_log1pf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_log1pl.c (renamed from sysdeps/m68k/fpu/s_log1pl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_lrint.c (renamed from sysdeps/m68k/fpu/s_lrint.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_lrintf.c (renamed from sysdeps/m68k/fpu/s_lrintf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_lrintl.c (renamed from sysdeps/m68k/fpu/s_lrintl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_modf.c (renamed from sysdeps/m68k/fpu/s_modf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_modff.c (renamed from sysdeps/m68k/fpu/s_modff.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_modfl.c (renamed from sysdeps/m68k/fpu/s_modfl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_nearbyint.c (renamed from sysdeps/m68k/fpu/s_nearbyint.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_nearbyintf.c (renamed from sysdeps/m68k/fpu/s_nearbyintf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_nearbyintl.c (renamed from sysdeps/m68k/fpu/s_nearbyintl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_nextafterl.c (renamed from sysdeps/m68k/fpu/s_nextafterl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_remquo.c (renamed from sysdeps/m68k/fpu/s_remquo.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_remquof.c (renamed from sysdeps/m68k/fpu/s_remquof.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_remquol.c (renamed from sysdeps/m68k/fpu/s_remquol.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_rint.c (renamed from sysdeps/m68k/fpu/s_rint.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_rintf.c (renamed from sysdeps/m68k/fpu/s_rintf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_rintl.c (renamed from sysdeps/m68k/fpu/s_rintl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_scalbln.c (renamed from sysdeps/m68k/fpu/s_scalbln.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_scalblnf.c (renamed from sysdeps/m68k/fpu/s_scalblnf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_scalblnl.c (renamed from sysdeps/m68k/fpu/s_scalblnl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_scalbn.c (renamed from sysdeps/m68k/fpu/s_scalbn.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_scalbnf.c (renamed from sysdeps/m68k/fpu/s_scalbnf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_scalbnl.c (renamed from sysdeps/m68k/fpu/s_scalbnl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_significand.c (renamed from sysdeps/m68k/fpu/s_significand.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_significandf.c (renamed from sysdeps/m68k/fpu/s_significandf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_significandl.c (renamed from sysdeps/m68k/fpu/s_significandl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sin.c (renamed from sysdeps/m68k/fpu/s_sin.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sincos.c (renamed from sysdeps/m68k/fpu/s_sincos.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sincosf.c (renamed from sysdeps/m68k/fpu/s_sincosf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sincosl.c (renamed from sysdeps/m68k/fpu/s_sincosl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sinf.c (renamed from sysdeps/m68k/fpu/s_sinf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sinl.c (renamed from sysdeps/m68k/fpu/s_sinl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tan.c (renamed from sysdeps/m68k/fpu/s_tan.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tanf.c (renamed from sysdeps/m68k/fpu/s_tanf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tanh.c (renamed from sysdeps/m68k/fpu/s_tanh.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tanhf.c (renamed from sysdeps/m68k/fpu/s_tanhf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tanhl.c (renamed from sysdeps/m68k/fpu/s_tanhl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tanl.c (renamed from sysdeps/m68k/fpu/s_tanl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_trunc.c (renamed from sysdeps/m68k/fpu/s_trunc.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_truncf.c (renamed from sysdeps/m68k/fpu/s_truncf.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_truncl.c (renamed from sysdeps/m68k/fpu/s_truncl.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/sincos32.c (renamed from sysdeps/m68k/fpu/sincos32.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/slowexp.c (renamed from sysdeps/m68k/fpu/slowexp.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/slowpow.c (renamed from sysdeps/m68k/fpu/slowpow.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/switch/68881-sw.h (renamed from sysdeps/m68k/fpu/switch/68881-sw.h)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/switch/Makefile (renamed from sysdeps/m68k/fpu/switch/Makefile)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/switch/bits/mathinline.h (renamed from sysdeps/m68k/fpu/switch/bits/mathinline.h)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/switch/switch.c (renamed from sysdeps/m68k/fpu/switch/switch.c)0
-rw-r--r--sysdeps/m68k/m680x0/fpu/t_exp.c (renamed from sysdeps/m68k/fpu/t_exp.c)0
-rw-r--r--sysdeps/m68k/m680x0/lshift.S (renamed from sysdeps/m68k/lshift.S)0
-rw-r--r--sysdeps/m68k/m680x0/m68020/Makefile (renamed from sysdeps/m68k/m68020/Makefile)0
-rw-r--r--sysdeps/m68k/m680x0/m68020/addmul_1.S (renamed from sysdeps/m68k/m68020/addmul_1.S)0
-rw-r--r--sysdeps/m68k/m680x0/m68020/bits/atomic.h (renamed from sysdeps/m68k/m68020/bits/atomic.h)0
-rw-r--r--sysdeps/m68k/m680x0/m68020/bits/string.h (renamed from sysdeps/m68k/m68020/bits/string.h)0
-rw-r--r--sysdeps/m68k/m680x0/m68020/mul_1.S (renamed from sysdeps/m68k/m68020/mul_1.S)0
-rw-r--r--sysdeps/m68k/m680x0/m68020/submul_1.S (renamed from sysdeps/m68k/m68020/submul_1.S)0
-rw-r--r--sysdeps/m68k/m680x0/m68020/wordcopy.S (renamed from sysdeps/m68k/m68020/wordcopy.S)0
-rw-r--r--sysdeps/m68k/m680x0/printf_fphex.c (renamed from sysdeps/m68k/printf_fphex.c)0
-rw-r--r--sysdeps/m68k/m680x0/rshift.S (renamed from sysdeps/m68k/rshift.S)0
-rw-r--r--sysdeps/m68k/m680x0/s_isinfl.c (renamed from sysdeps/m68k/s_isinfl.c)0
-rw-r--r--sysdeps/m68k/m680x0/s_isnanl.c (renamed from sysdeps/m68k/s_isnanl.c)0
-rw-r--r--sysdeps/m68k/m680x0/strtold_l.c (renamed from sysdeps/m68k/strtold_l.c)0
-rw-r--r--sysdeps/m68k/m680x0/sub_n.S (renamed from sysdeps/m68k/sub_n.S)0
-rw-r--r--sysdeps/m68k/memchr.S54
-rw-r--r--sysdeps/m68k/preconfigure15
-rw-r--r--sysdeps/m68k/rawmemchr.S18
-rw-r--r--sysdeps/m68k/setjmp.c5
-rw-r--r--sysdeps/m68k/strchr.S36
-rw-r--r--sysdeps/m68k/strchrnul.S36
-rw-r--r--sysdeps/m68k/sysdep.h22
-rw-r--r--sysdeps/m68k/tst-audit.h25
-rw-r--r--sysdeps/m68k/wcpcpy.c37
-rw-r--r--sysdeps/m68k/wcpcpy_chk.c36
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/sigcontext.h62
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/siginfo.h316
-rw-r--r--sysdeps/unix/sysv/linux/m68k/clone.S12
-rw-r--r--sysdeps/unix/sysv/linux/m68k/configure6
-rw-r--r--sysdeps/unix/sysv/linux/m68k/configure.in7
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/register-dump.h76
-rw-r--r--sysdeps/unix/sysv/linux/m68k/socket.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/reg.h27
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/ucontext.h12
-rw-r--r--sysdeps/unix/sysv/linux/m68k/syscalls.list2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.h6
253 files changed, 2353 insertions, 103 deletions
diff --git a/ChangeLog.m68k b/ChangeLog.m68k
index 328f858c8e..b12f7f42ab 100644
--- a/ChangeLog.m68k
+++ b/ChangeLog.m68k
@@ -1,3 +1,304 @@
+2006-10-03  Richard Sandiford  <richard@codesourcery.com>
+
+	* sysdeps/m68k/bits/mathdef.h: Moved from sysdeps/m68k to
+	sysdeps/m68k/m680x0.
+	* sysdeps/m68k/m68020/submul_1.S: Likewise.
+	* sysdeps/m68k/m68020/Makefile: Likewise.
+	* sysdeps/m68k/m68020/mul_1.S: Likewise.
+	* sysdeps/m68k/m68020/wordcopy.S: Likewise.
+	* sysdeps/m68k/m68020/addmul_1.S: Likewise.
+	* sysdeps/m68k/m68020/bits/string.h: Likewise.
+	* sysdeps/m68k/m68020/bits/atomic.h: Likewise.
+	* sysdeps/m68k/sub_n.S: Likewise.
+	* sysdeps/m68k/add_n.S: Likewise.
+	* sysdeps/m68k/s_isnanl.c: Likewise.
+	* sysdeps/m68k/fpu/s_log1p.c: Likewise.
+	* sysdeps/m68k/fpu/e_asinf.c: Likewise.
+	* sysdeps/m68k/fpu/s_cosl.c: Likewise.
+	* sysdeps/m68k/fpu/s_isinff.c: Likewise.
+	* sysdeps/m68k/fpu/k_rem_pio2.c: Likewise.
+	* sysdeps/m68k/fpu/s_ccos.c: Likewise.
+	* sysdeps/m68k/fpu/s_expm1.c: Likewise.
+	* sysdeps/m68k/fpu/slowexp.c: Likewise.
+	* sysdeps/m68k/fpu/k_rem_pio2l.c: Likewise.
+	* sysdeps/m68k/fpu/s_ccoshf.c: Likewise.
+	* sysdeps/m68k/fpu/s_ilogbl.c: Likewise.
+	* sysdeps/m68k/fpu/Makefile: Likewise.
+	* sysdeps/m68k/fpu/s_expm1f.c: Likewise.
+	* sysdeps/m68k/fpu/s_significandf.c: Likewise.
+	* sysdeps/m68k/fpu/e_pow.c: Likewise.
+	* sysdeps/m68k/fpu/s_csinh.c: Likewise.
+	* sysdeps/m68k/fpu/e_exp.c: Likewise.
+	* sysdeps/m68k/fpu/s_remquof.c: Likewise.
+	* sysdeps/m68k/fpu/s_ilogbf.c: Likewise.
+	* sysdeps/m68k/fpu/s_truncl.c: Likewise.
+	* sysdeps/m68k/fpu/s_frexpf.c: Likewise.
+	* sysdeps/m68k/fpu/s_cos.c: Likewise.
+	* sysdeps/m68k/fpu/fraiseexcpt.c: Likewise.
+	* sysdeps/m68k/fpu/branred.c: Likewise.
+	* sysdeps/m68k/fpu/s_frexpl.c: Likewise.
+	* sysdeps/m68k/fpu/s_atan.c: Likewise.
+	* sysdeps/m68k/fpu/e_rem_pio2f.c: Likewise.
+	* sysdeps/m68k/fpu/e_scalbl.c: Likewise.
+	* sysdeps/m68k/fpu/e_exp2.c: Likewise.
+	* sysdeps/m68k/fpu/s_cexpf.c: Likewise.
+	* sysdeps/m68k/fpu/mplog.c: Likewise.
+	* sysdeps/m68k/fpu/s_rintf.c: Likewise.
+	* sysdeps/m68k/fpu/s_tanh.c: Likewise.
+	* sysdeps/m68k/fpu/e_scalbf.c: Likewise.
+	* sysdeps/m68k/fpu/s_csinhl.c: Likewise.
+	* sysdeps/m68k/fpu/s_floorl.c: Likewise.
+	* sysdeps/m68k/fpu/k_tanf.c: Likewise.
+	* sysdeps/m68k/fpu/k_tanl.c: Likewise.
+	* sysdeps/m68k/fpu/e_fmodf.c: Likewise.
+	* sysdeps/m68k/fpu/e_atanhf.c: Likewise.
+	* sysdeps/m68k/fpu/s_isnanf.c: Likewise.
+	* sysdeps/m68k/fpu/s_fpclassifyl.c: Likewise.
+	* sysdeps/m68k/fpu/s_modf.c: Likewise.
+	* sysdeps/m68k/fpu/e_log2.c: Likewise.
+	* sysdeps/m68k/fpu/e_acosf.c: Likewise.
+	* sysdeps/m68k/fpu/s_log1pl.c: Likewise.
+	* sysdeps/m68k/fpu/e_log2f.c: Likewise.
+	* sysdeps/m68k/fpu/mpa.c: Likewise.
+	* sysdeps/m68k/fpu/t_exp.c: Likewise.
+	* sysdeps/m68k/fpu/e_acos.c: Likewise.
+	* sysdeps/m68k/fpu/s_expm1l.c: Likewise.
+	* sysdeps/m68k/fpu/s_ccoshl.c: Likewise.
+	* sysdeps/m68k/fpu/s_sinf.c: Likewise.
+	* sysdeps/m68k/fpu/k_tan.c: Likewise.
+	* sysdeps/m68k/fpu/k_cosl.c: Likewise.
+	* sysdeps/m68k/fpu/e_remainder.c: Likewise.
+	* sysdeps/m68k/fpu/s_trunc.c: Likewise.
+	* sysdeps/m68k/fpu/s_sincos.c: Likewise.
+	* sysdeps/m68k/fpu/s_scalbnl.c: Likewise.
+	* sysdeps/m68k/fpu/s_finitef.c: Likewise.
+	* sysdeps/m68k/fpu/s_tanhl.c: Likewise.
+	* sysdeps/m68k/fpu/s_lrintl.c: Likewise.
+	* sysdeps/m68k/fpu/slowpow.c: Likewise.
+	* sysdeps/m68k/fpu/mpexp.c: Likewise.
+	* sysdeps/m68k/fpu/s_isnanl.c: Likewise.
+	* sysdeps/m68k/fpu/e_expf.c: Likewise.
+	* sysdeps/m68k/fpu/s_significand.c: Likewise.
+	* sysdeps/m68k/fpu/e_sinhf.c: Likewise.
+	* sysdeps/m68k/fpu/s_tanl.c: Likewise.
+	* sysdeps/m68k/fpu/s_tanhf.c: Likewise.
+	* sysdeps/m68k/fpu/s_cexp.c: Likewise.
+	* sysdeps/m68k/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/m68k/fpu/s_isinf.c: Likewise.
+	* sysdeps/m68k/fpu/s_nearbyint.c: Likewise.
+	* sysdeps/m68k/fpu/e_fmod.c: Likewise.
+	* sysdeps/m68k/fpu/sincos32.c: Likewise.
+	* sysdeps/m68k/fpu/e_sqrtl.c: Likewise.
+	* sysdeps/m68k/fpu/s_sincosl.c: Likewise.
+	* sysdeps/m68k/fpu/e_atan2f.c: Likewise.
+	* sysdeps/m68k/fpu/s_nearbyintf.c: Likewise.
+	* sysdeps/m68k/fpu/e_fmodl.c: Likewise.
+	* sysdeps/m68k/fpu/e_coshf.c: Likewise.
+	* sysdeps/m68k/fpu/s_csinf.c: Likewise.
+	* sysdeps/m68k/fpu/s_ccosl.c: Likewise.
+	* sysdeps/m68k/fpu/e_sqrt.c: Likewise.
+	* sysdeps/m68k/fpu/s_sin.c: Likewise.
+	* sysdeps/m68k/fpu/e_asin.c: Likewise.
+	* sysdeps/m68k/fpu/mptan.c: Likewise.
+	* sysdeps/m68k/fpu/e_exp10f.c: Likewise.
+	* sysdeps/m68k/fpu/e_scalb.c: Likewise.
+	* sysdeps/m68k/fpu/s_finitel.c: Likewise.
+	* sysdeps/m68k/fpu/e_log10.c: Likewise.
+	* sysdeps/m68k/fpu/k_sinl.c: Likewise.
+	* sysdeps/m68k/fpu/e_remainderl.c: Likewise.
+	* sysdeps/m68k/fpu/s_remquol.c: Likewise.
+	* sysdeps/m68k/fpu/s_scalblnf.c: Likewise.
+	* sysdeps/m68k/fpu/s_llrint.c: Likewise.
+	* sysdeps/m68k/fpu/e_rem_pio2.c: Likewise.
+	* sysdeps/m68k/fpu/e_asinl.c: Likewise.
+	* sysdeps/m68k/fpu/e_logl.c: Likewise.
+	* sysdeps/m68k/fpu/s_cosf.c: Likewise.
+	* sysdeps/m68k/fpu/s_rint.c: Likewise.
+	* sysdeps/m68k/fpu/s_ceill.c: Likewise.
+	* sysdeps/m68k/fpu/s_modfl.c: Likewise.
+	* sysdeps/m68k/fpu/s_csinl.c: Likewise.
+	* sysdeps/m68k/fpu/s_tan.c: Likewise.
+	* sysdeps/m68k/fpu/s_sincosf.c: Likewise.
+	* sysdeps/m68k/fpu/dosincos.c: Likewise.
+	* sysdeps/m68k/fpu/e_powl.c: Likewise.
+	* sysdeps/m68k/fpu/s_ilogb.c: Likewise.
+	* sysdeps/m68k/fpu/s_llrintl.c: Likewise.
+	* sysdeps/m68k/fpu/e_expl.c: Likewise.
+	* sysdeps/m68k/fpu/libm-test-ulps: Likewise.
+	* sysdeps/m68k/fpu/s_tanf.c: Likewise.
+	* sysdeps/m68k/fpu/mpsqrt.c: Likewise.
+	* sysdeps/m68k/fpu/s_sinl.c: Likewise.
+	* sysdeps/m68k/fpu/mathimpl.h: Likewise.
+	* sysdeps/m68k/fpu/e_acosl.c: Likewise.
+	* sysdeps/m68k/fpu/e_cosh.c: Likewise.
+	* sysdeps/m68k/fpu/s_cexpl.c: Likewise.
+	* sysdeps/m68k/fpu/s_fabsl.c: Likewise.
+	* sysdeps/m68k/fpu/halfulp.c: Likewise.
+	* sysdeps/m68k/fpu/s_modff.c: Likewise.
+	* sysdeps/m68k/fpu/s_isnan.c: Likewise.
+	* sysdeps/m68k/fpu/e_atan2.c: Likewise.
+	* sysdeps/m68k/fpu/s_fabs.c: Likewise.
+	* sysdeps/m68k/fpu/e_log10f.c: Likewise.
+	* sysdeps/m68k/fpu/k_cosf.c: Likewise.
+	* sysdeps/m68k/fpu/e_sinh.c: Likewise.
+	* sysdeps/m68k/fpu/s_truncf.c: Likewise.
+	* sysdeps/m68k/fpu/s_ceil.c: Likewise.
+	* sysdeps/m68k/fpu/s_log1pf.c: Likewise.
+	* sysdeps/m68k/fpu/e_logf.c: Likewise.
+	* sysdeps/m68k/fpu/mpatan.c: Likewise.
+	* sysdeps/m68k/fpu/s_csin.c: Likewise.
+	* sysdeps/m68k/fpu/e_exp2l.c: Likewise.
+	* sysdeps/m68k/fpu/e_sinhl.c: Likewise.
+	* sysdeps/m68k/fpu/e_atan2l.c: Likewise.
+	* sysdeps/m68k/fpu/s_scalbn.c: Likewise.
+	* sysdeps/m68k/fpu/s_floorf.c: Likewise.
+	* sysdeps/m68k/fpu/e_log2l.c: Likewise.
+	* sysdeps/m68k/fpu/s_atanl.c: Likewise.
+	* sysdeps/m68k/fpu/s_llrintf.c: Likewise.
+	* sysdeps/m68k/fpu/k_sinf.c: Likewise.
+	* sysdeps/m68k/fpu/s_csinhf.c: Likewise.
+	* sysdeps/m68k/fpu/s_frexp.c: Likewise.
+	* sysdeps/m68k/fpu/s_atanf.c: Likewise.
+	* sysdeps/m68k/fpu/s_floor.c: Likewise.
+	* sysdeps/m68k/fpu/e_exp10l.c: Likewise.
+	* sysdeps/m68k/fpu/doasin.c: Likewise.
+	* sysdeps/m68k/fpu/s_rintl.c: Likewise.
+	* sysdeps/m68k/fpu/e_atanhl.c: Likewise.
+	* sysdeps/m68k/fpu/e_remainderf.c: Likewise.
+	* sysdeps/m68k/fpu/s_scalbln.c: Likewise.
+	* sysdeps/m68k/fpu/e_rem_pio2l.c: Likewise.
+	* sysdeps/m68k/fpu/e_exp10.c: Likewise.
+	* sysdeps/m68k/fpu/s_lrintf.c: Likewise.
+	* sysdeps/m68k/fpu/k_cos.c: Likewise.
+	* sysdeps/m68k/fpu/s_lrint.c: Likewise.
+	* sysdeps/m68k/fpu/s_ccosf.c: Likewise.
+	* sysdeps/m68k/fpu/s_scalblnl.c: Likewise.
+	* sysdeps/m68k/fpu/switch/Makefile: Likewise.
+	* sysdeps/m68k/fpu/switch/switch.c: Likewise.
+	* sysdeps/m68k/fpu/switch/68881-sw.h: Likewise.
+	* sysdeps/m68k/fpu/switch/bits/mathinline.h: Likewise.
+	* sysdeps/m68k/fpu/e_log.c: Likewise.
+	* sysdeps/m68k/fpu/s_nextafterl.c: Likewise.
+	* sysdeps/m68k/fpu/s_nearbyintl.c: Likewise.
+	* sysdeps/m68k/fpu/mpatan2.c: Likewise.
+	* sysdeps/m68k/fpu/k_sin.c: Likewise.
+	* sysdeps/m68k/fpu/e_atanh.c: Likewise.
+	* sysdeps/m68k/fpu/s_remquo.c: Likewise.
+	* sysdeps/m68k/fpu/e_log10l.c: Likewise.
+	* sysdeps/m68k/fpu/s_ceilf.c: Likewise.
+	* sysdeps/m68k/fpu/s_fabsf.c: Likewise.
+	* sysdeps/m68k/fpu/s_significandl.c: Likewise.
+	* sysdeps/m68k/fpu/s_ccosh.c: Likewise.
+	* sysdeps/m68k/fpu/e_coshl.c: Likewise.
+	* sysdeps/m68k/fpu/s_scalbnf.c: Likewise.
+	* sysdeps/m68k/fpu/s_finite.c: Likewise.
+	* sysdeps/m68k/fpu/e_exp2f.c: Likewise.
+	* sysdeps/m68k/fpu/k_rem_pio2f.c: Likewise.
+	* sysdeps/m68k/fpu/s_isinfl.c: Likewise.
+	* sysdeps/m68k/fpu/bits/mathinline.h: Likewise.
+	* sysdeps/m68k/fpu/e_powf.c: Likewise.
+	* sysdeps/m68k/rshift.S: Likewise.
+	* sysdeps/m68k/lshift.S: Likewise.
+	* sysdeps/m68k/strtold_l.c: Likewise.
+	* sysdeps/m68k/printf_fphex.c: Likewise.
+	* sysdeps/m68k/s_isinfl.c: Likewise.
+	* sysdeps/m68k/bits/huge_vall.h: Likewise.
+
+	* sysdeps/m68k/asm-syntax.h (andw, andl, subqw, tstw, tstl): New.
+	* sysdeps/m68k/bits/byteswap.h (__bswap32): Don't define for
+	Coldfire targets.
+	* sysdeps/m68k/bits/setjmp.h (__jmp_buf): Add a 64-byte
+	__fpregs field for Coldfire FPUs.
+	* sysdeps/m68k/dl-machine.h: Include sysdep.h.
+	(elf_machine_load_address): Use PCREL_OP.
+	(_dl_start_user): Likewise.
+	* sysdeps/m68k/dl-trampoline.S (_dl_runtime_resolve): Avoid jmp (%dN)
+	on Coldfire; push the target address and use rts instead.
+	(_dl_runtime_profile): Likewise.  Round up the frame size to longword
+	rather than word alignment.  Avoid dbra on Coldfire.  Avoid using
+	jsr (%d0) on Coldfire; push the return address and target address
+	and use rts instead.  Use fmovem.l rather than fmovem.x on Coldfire.
+	Add missing initialization of lrv_a0 and restore a0 from it after
+	calling _dl_call_pltexit.  Adjust the stack offsets of later data
+	accordingly, fixing a previously incorrect offset for the inregs
+	parameter.
+	* sysdeps/m68k/fpu/fegetenv.c (__fegetenv): Save the control
+	registers individually on Coldfire targets.
+	* sysdeps/m68k/fpu/feholdexcpt.c (feholdexcept): Likewise.
+	Add missing libm_hidden_def.
+	* sysdeps/m68k/fpu/fesetenv.c (__fesetenv): Save and restore the
+	control registers individually on Coldfire targets.
+	* sysdeps/m68k/fpu/fesetround.c (fesetround): Add missing
+	libm_hidden_def.
+	* sysdeps/m68k/fpu_control.h: Add the Coldfire bit assignments to
+	the main comment.
+	(_FPU_DOUBLE): Define to 0 for Coldfire.
+	(_FPU_EXTENDED): Don't define for Coldfire.
+	(_FPU_RESERVED): Include bit 15 for Coldfire.
+	* sysdeps/m68k/Implies: Remove ieee754/ldbl-96.
+	* sysdeps/m68k/m680x0/Implies: Add it to this new file instead.
+	* sysdeps/m68k/ldsodefs.h: New file.
+	* sysdeps/m68k/__longjmp.c (__longjmp): Restore the floating-point
+	registers when using a Coldfire FPU.
+	* sysdeps/m68k/Makefile (long-double-fcts): Delete.
+	* sysdeps/m68k/m680x0/Makefile: Add it to this new file instead.
+	* sysdeps/m68k/memchr.S (__memchr): Add Coldfire code.  Avoid
+	unnecessary moves.
+	* sysdeps/m68k/preconfigure (m680?0): Add "m680x0" to $machine.
+	(m68k): Use the compiler to decide whether $machine should be
+	set to m68k/coldfire or m68k/m680x0/m68020.
+	* sysdeps/m68k/rawmemchr.S (__rawmemchr): Add Coldfire code.  Avoid
+	unnecessary moves.
+	* sysdeps/m68k/setjmp.c (__sigsetjmp): Save the floating-point
+	registers when using a Coldfire FPU.  Use libc_hidden_def rather
+	than hidden_def.
+	* sysdeps/m68k/strchrnul.S (__strchrnul): Add Coldfire code.  Avoid
+	unnecessary moves.
+	* sysdeps/m68k/strchr.S (strchr): Likewise.
+	* sysdeps/m68k/sysdep.h (PCREL_OP): Define.
+	* sysdeps/m68k/tst-audit.h: New file.
+	* sysdeps/m68k/wcpcpy.c: Likewise.
+	* sysdeps/m68k/wcpcpy_chk.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/configure.in: New file.
+	* sysdeps/unix/sysv/linux/m68k/configure: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/clone.S (__clone): Add Coldfire code.
+	* sysdeps/unix/sysv/linux/m68k/register-dump.h (real_catch_segfault):
+	Do not define on Coldfire.
+	(catch_segfault): Likewise.
+	(register_dump): Use the Coldfire-specific sigcontext fields to
+	display call-saved data and address registers (rather than the
+	data stored in sc_fpstate by real_catch_segfault).  Display 8-byte 
+	floating-point registers on Coldfire.
+	* sysdeps/unix/sysv/linux/m68k/socket.S (__socket): Pass a temporary
+	register to SINGLE_THREAD_P.
+	* sysdeps/unix/sysv/linux/m68k/sys/reg.h (PT_FP0): Redefine for
+	Coldfire.
+	(PT_FP1, PT_FP2, PT_FP3, PT_FP4, PT_FP5, PT_FP6, PT_FP7): Likewise.
+	* sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (fpregset): Sync field
+	order with linux.  Make f_fpregs an 8*2 array on Coldfire.
+	(ucontext): Sync field order with linux.
+	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Guard against multiple
+	inclusion.
+	(SYSCALL_ERROR_HANDLER): Use PCREL_OP.
+	* sysdeps/unix/sysv/linux/m68k/syscalls.list (oldgetrlimit): Delete.
+	(oldsetrlimit): Likewise.
+	* sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list: New file.
+	List oldgetrlimit and oldsetrlimit here instead.
+	* sysdeps/unix/sysv/linux/m68k/bits/sigcontext.h: New file.
+	* sysdeps/unix/sysv/linux/m68k/bits/siginfo.h: Likewise.
+	* sysdeps/m68k/coldfire/bits/atomic.h: Likewise.
+	* sysdeps/m68k/coldfire/fpu/e_sqrt.c: Likewise.
+	* sysdeps/m68k/coldfire/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/m68k/coldfire/fpu/fraiseexcpt.c: Likewise.
+	* sysdeps/m68k/coldfire/fpu/libm-test-ulps: Likewise.
+	* sysdeps/m68k/coldfire/fpu/s_fabs.c: Likewise.
+	* sysdeps/m68k/coldfire/fpu/s_fabsf.c: Likewise.
+	* sysdeps/m68k/coldfire/fpu/s_lrint.c: Likewise.
+	* sysdeps/m68k/coldfire/fpu/s_lrintf.c: Likewise.
+	* sysdeps/m68k/coldfire/fpu/s_rint.c: Likewise.
+	* sysdeps/m68k/coldfire/fpu/s_rintf.c: Likewise.
+	* sysdeps/m68k/coldfire/shlib-versions: Likewise.
+
 2006-02-28  Roland McGrath  <roland@redhat.com>
 
 	* sysdeps/m68k/preconfigure: New file.
diff --git a/sysdeps/m68k/Implies b/sysdeps/m68k/Implies
index 5c778d4fbc..beaba937de 100644
--- a/sysdeps/m68k/Implies
+++ b/sysdeps/m68k/Implies
@@ -1,5 +1,4 @@
 wordsize-32
 # 68k uses IEEE 754 floating point.
-ieee754/ldbl-96
 ieee754/dbl-64
 ieee754/flt-32
diff --git a/sysdeps/m68k/Makefile b/sysdeps/m68k/Makefile
index fab6bd5837..ca0d500295 100644
--- a/sysdeps/m68k/Makefile
+++ b/sysdeps/m68k/Makefile
@@ -30,9 +30,6 @@ pic-ccflag = -fpic
 # Make sure setjmp.c is compiled with a frame pointer
 CFLAGS-setjmp.c := -fno-omit-frame-pointer
 
-# The 68k `long double' is a distinct type we support.
-long-double-fcts = yes
-
 ifeq ($(subdir),elf)
 CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused
 endif
diff --git a/sysdeps/m68k/__longjmp.c b/sysdeps/m68k/__longjmp.c
index 89ff5bab56..7d876a7a14 100644
--- a/sysdeps/m68k/__longjmp.c
+++ b/sysdeps/m68k/__longjmp.c
@@ -31,6 +31,9 @@ __longjmp (__jmp_buf env, int val)
   /* Restore the floating-point registers.  */
   asm volatile("fmovem%.x %0, %/fp0-%/fp7" :
 	       /* No outputs.  */ : "g" (env[0].__fpregs[0]));
+#elif defined (__mcffpu__)
+  asm volatile("fmovem %0, %/fp0-%/fp7" :
+	       /* No outputs.  */ : "m" (env[0].__fpregs[0]));
 #endif
 
   /* Put VAL in D0.  */
diff --git a/sysdeps/m68k/asm-syntax.h b/sysdeps/m68k/asm-syntax.h
index 8e2a4ca2ca..645e906762 100644
--- a/sysdeps/m68k/asm-syntax.h
+++ b/sysdeps/m68k/asm-syntax.h
@@ -93,7 +93,9 @@
 #define cmpl cmp.l
 #define orl or.l
 #define clrl clr.l
+#define andw and.w
 #define eorw eor.w
+#define andl and.l
 #define lsrl lsr.l
 #define lsll lsl.l
 #define roxrl roxr.l
@@ -103,7 +105,10 @@
 #define addql addq.l
 #define subl sub.l
 #define subxl subx.l
+#define subqw subq.w
 #define subql subq.l
 #define negl neg.l
 #define mulul mulu.l
+#define tstw tst.w
+#define tstl tst.l
 #endif
diff --git a/sysdeps/m68k/bits/byteswap.h b/sysdeps/m68k/bits/byteswap.h
index 549d4452ef..41b386b313 100644
--- a/sysdeps/m68k/bits/byteswap.h
+++ b/sysdeps/m68k/bits/byteswap.h
@@ -35,7 +35,7 @@
   ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) | \
    (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
 
-#if defined __GNUC__ && __GNUC__ >= 2
+#if defined __GNUC__ && __GNUC__ >= 2 && !defined(__mcoldfire__)
 # define __bswap_32(x) \
   __extension__							\
   ({ unsigned int __bswap_32_v;					\
diff --git a/sysdeps/m68k/bits/setjmp.h b/sysdeps/m68k/bits/setjmp.h
index 2d5a08227d..27ec051e5b 100644
--- a/sysdeps/m68k/bits/setjmp.h
+++ b/sysdeps/m68k/bits/setjmp.h
@@ -38,6 +38,8 @@ typedef struct
     /* There are eight floating point registers which
        are saved in IEEE 96-bit extended format.  */
     char __fpregs[8 * (96 / 8)];
+#elif defined __mcffpu__
+    char __fpregs[8 * (64 / 8)];
 #endif
 
   } __jmp_buf[1];
diff --git a/sysdeps/m68k/coldfire/bits/atomic.h b/sysdeps/m68k/coldfire/bits/atomic.h
new file mode 100644
index 0000000000..8b5403e009
--- /dev/null
+++ b/sysdeps/m68k/coldfire/bits/atomic.h
@@ -0,0 +1,69 @@
+/* Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _BITS_ATOMIC_H
+#define _BITS_ATOMIC_H	1
+
+#include <stdint.h>
+
+/* Coldfire has no atomic compare-and-exchange operation, and the
+   kernel provides no userspace atomicity operations.  Here we just
+   use generic non-atomic implementations instead.  */
+
+typedef int8_t atomic8_t;
+typedef uint8_t uatomic8_t;
+typedef int_fast8_t atomic_fast8_t;
+typedef uint_fast8_t uatomic_fast8_t;
+
+typedef int16_t atomic16_t;
+typedef uint16_t uatomic16_t;
+typedef int_fast16_t atomic_fast16_t;
+typedef uint_fast16_t uatomic_fast16_t;
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+typedef int_fast32_t atomic_fast32_t;
+typedef uint_fast32_t uatomic_fast32_t;
+
+typedef int64_t atomic64_t;
+typedef uint64_t uatomic64_t;
+typedef int_fast64_t atomic_fast64_t;
+typedef uint_fast64_t uatomic_fast64_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+/* The only basic operation needed is compare and exchange.  */
+#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+  ({ __typeof (mem) __gmemp = (mem);				      \
+     __typeof (*mem) __gret = *__gmemp;				      \
+     __typeof (*mem) __gnewval = (newval);			      \
+								      \
+     if (__gret == (oldval))					      \
+       *__gmemp = __gnewval;					      \
+     __gret; })
+
+#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
+  ({ __typeof (mem) __gmemp = (mem);				      \
+     __typeof (*mem) __gnewval = (newval);			      \
+								      \
+     *__gmemp == (oldval) ? (*__gmemp = __gnewval, 0) : 1; })
+
+#endif
diff --git a/sysdeps/m68k/coldfire/fpu/e_sqrt.c b/sysdeps/m68k/coldfire/fpu/e_sqrt.c
new file mode 100644
index 0000000000..a160308bf2
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/e_sqrt.c
@@ -0,0 +1,24 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+double
+__ieee754_sqrt (double x)
+{
+  asm ("fdsqrt.d %1,%0" : "=f" (x) : "fm" (x));
+  return x;
+}
diff --git a/sysdeps/m68k/coldfire/fpu/e_sqrtf.c b/sysdeps/m68k/coldfire/fpu/e_sqrtf.c
new file mode 100644
index 0000000000..7cfc0dd655
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/e_sqrtf.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+float
+__ieee754_sqrtf (float x)
+{
+  double result;
+  asm ("fssqrt.s %1,%0" : "=f" (result) : "dm" (x));
+  return result;
+}
diff --git a/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c b/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
new file mode 100644
index 0000000000..c62ddaa016
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
@@ -0,0 +1,67 @@
+/* Raise given exceptions.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <fenv.h>
+#include <float.h>
+#include <math.h>
+
+int
+feraiseexcept (int excepts)
+{
+  /* Raise exceptions represented by EXCEPTS.  But we must raise only one
+     signal at a time.  It is important that if the overflow/underflow
+     exception and the divide by zero exception are given at the same
+     time, the overflow/underflow exception follows the divide by zero
+     exception.
+
+     The Coldfire FPU allows an exception to be raised by asserting
+     the associated EXC bit and then executing an arbitrary arithmetic
+     instruction.  fmove.l is classified as an arithmetic instruction
+     and suffices for this purpose.
+
+     We therefore raise an exception by setting both the EXC and AEXC
+     bit associated with the exception (the former being 6 bits to the
+     left of the latter) and then loading the longword at (%sp) into an
+     FP register.  */
+
+  inline void
+  raise_one_exception (int mask)
+  {
+    if (excepts & mask)
+      {
+	int fpsr;
+	double unused;
+
+	asm volatile ("fmove%.l %/fpsr,%0" : "=d" (fpsr));
+	fpsr |= (mask << 6) | mask;
+	asm volatile ("fmove%.l %0,%/fpsr" :: "d" (fpsr));
+	asm volatile ("fmove%.l (%%sp),%0" : "=f" (unused));
+      }
+  }
+
+  raise_one_exception (FE_INVALID);
+  raise_one_exception (FE_DIVBYZERO);
+  raise_one_exception (FE_OVERFLOW);
+  raise_one_exception (FE_UNDERFLOW);
+  raise_one_exception (FE_INEXACT);
+
+  /* Success.  */
+  return 0;
+}
+libm_hidden_def (feraiseexcept)
diff --git a/sysdeps/m68k/coldfire/fpu/libm-test-ulps b/sysdeps/m68k/coldfire/fpu/libm-test-ulps
new file mode 100644
index 0000000000..8608c0d390
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/libm-test-ulps
@@ -0,0 +1,820 @@
+# Begin of automatic generation
+
+# atan2
+Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+float: 1
+ifloat: 1
+Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+float: 1
+ifloat: 1
+Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+float: 1
+ifloat: 1
+
+# atanh
+Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+float: 1
+ifloat: 1
+
+# cacosh
+Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+float: 1
+ifloat: 1
+
+# casin
+Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# casinh
+Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+double: 5
+float: 1
+idouble: 5
+ifloat: 1
+Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+double: 3
+float: 6
+idouble: 3
+ifloat: 6
+Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# catan
+Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# catanh
+Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+double: 4
+idouble: 4
+Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+double: 1
+idouble: 1
+
+# cbrt
+Test "cbrt (-27.0) == -3.0":
+double: 1
+idouble: 1
+Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+double: 1
+idouble: 1
+Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+double: 1
+idouble: 1
+
+# ccos
+Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+float: 1
+ifloat: 1
+Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+float: 1
+ifloat: 1
+
+# ccosh
+Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+float: 1
+ifloat: 1
+Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+float: 1
+ifloat: 1
+
+# cexp
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+float: 1
+ifloat: 1
+Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+float: 1
+ifloat: 1
+
+# clog
+Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+float: 1
+ifloat: 1
+
+# clog10
+Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+float: 1
+ifloat: 1
+
+# cos
+Test "cos (M_PI_6l * 2.0) == 0.5":
+double: 1
+idouble: 1
+Test "cos (M_PI_6l * 4.0) == -0.5":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+# cpow
+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+float: 1
+ifloat: 1
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+double: 1
+float: 4
+idouble: 1
+ifloat: 4
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+double: 1
+float: 4
+idouble: 1
+ifloat: 4
+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+# csinh
+Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+double: 1
+idouble: 1
+Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+float: 1
+ifloat: 1
+
+# csqrt
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+float: 1
+ifloat: 1
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+float: 1
+ifloat: 1
+
+# ctan
+Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+double: 1
+idouble: 1
+
+# ctanh
+Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+float: 1
+ifloat: 1
+Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+double: 1
+idouble: 1
+
+# erf
+Test "erf (1.25) == 0.922900128256458230136523481197281140":
+double: 1
+idouble: 1
+
+# erfc
+Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+double: 1
+idouble: 1
+Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+double: 1
+idouble: 1
+
+# exp10
+Test "exp10 (-1) == 0.1":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "exp10 (3) == 1000":
+double: 6
+float: 2
+idouble: 6
+ifloat: 2
+
+# expm1
+Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+double: 1
+idouble: 1
+Test "expm1 (1) == M_El - 1.0":
+float: 1
+ifloat: 1
+
+# hypot
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+
+# j0
+Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+float: 1
+ifloat: 1
+Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+float: 2
+ifloat: 2
+Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+float: 1
+ifloat: 1
+
+# j1
+Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+float: 2
+ifloat: 2
+Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+double: 1
+idouble: 1
+Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+double: 1
+idouble: 1
+
+# jn
+Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+float: 1
+ifloat: 1
+Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+float: 2
+ifloat: 2
+Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+float: 1
+ifloat: 1
+Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+float: 2
+ifloat: 2
+Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+double: 1
+idouble: 1
+Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+double: 1
+idouble: 1
+Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+float: 4
+ifloat: 4
+Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+# lgamma
+Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+# log10
+Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "log10 (e) == log10(e)":
+float: 1
+ifloat: 1
+
+# log1p
+Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+float: 1
+ifloat: 1
+
+# sincos
+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
+double: 1
+idouble: 1
+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+float: 1
+ifloat: 1
+
+# tgamma
+Test "tgamma (-0.5) == -2 sqrt (pi)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (0.5) == sqrt (pi)":
+float: 1
+ifloat: 1
+Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# y0
+Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+float: 1
+ifloat: 1
+Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# y1
+Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+double: 1
+idouble: 1
+Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+float: 1
+ifloat: 1
+Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+# yn
+Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+float: 1
+ifloat: 1
+Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+double: 1
+idouble: 1
+Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+float: 1
+ifloat: 1
+Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+double: 1
+idouble: 1
+Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+double: 1
+idouble: 1
+Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+double: 2
+idouble: 2
+Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+double: 1
+idouble: 1
+Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+double: 1
+idouble: 1
+
+# Maximal error of functions:
+Function: "atan2":
+float: 1
+ifloat: 1
+
+Function: "atanh":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "cacosh":
+float: 1
+ifloat: 1
+
+Function: Real part of "casin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "casinh":
+double: 5
+float: 1
+idouble: 5
+ifloat: 1
+
+Function: Imaginary part of "casinh":
+double: 3
+float: 6
+idouble: 3
+ifloat: 6
+
+Function: Imaginary part of "catan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "catanh":
+double: 4
+idouble: 4
+
+Function: "cbrt":
+double: 1
+idouble: 1
+
+Function: Real part of "ccos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccos":
+float: 1
+ifloat: 1
+
+Function: Real part of "ccosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccosh":
+float: 1
+ifloat: 1
+
+Function: Real part of "cexp":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "cexp":
+float: 1
+ifloat: 1
+
+Function: Real part of "clog":
+float: 1
+ifloat: 1
+
+Function: Real part of "clog10":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "clog10":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cos":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Real part of "cpow":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Imaginary part of "cpow":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "csinh":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "csinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csqrt":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctan":
+double: 1
+idouble: 1
+
+Function: Real part of "ctanh":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "ctanh":
+float: 1
+ifloat: 1
+
+Function: "erf":
+double: 1
+idouble: 1
+
+Function: "erfc":
+double: 1
+idouble: 1
+
+Function: "exp10":
+double: 6
+float: 2
+idouble: 6
+ifloat: 2
+
+Function: "expm1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "hypot":
+float: 1
+ifloat: 1
+
+Function: "j0":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "j1":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "jn":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: "lgamma":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "log10":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "log1p":
+float: 1
+ifloat: 1
+
+Function: "sincos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "tan":
+double: 1
+idouble: 1
+
+Function: "tgamma":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "y0":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "y1":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "yn":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+# end of automatic generation
diff --git a/sysdeps/m68k/coldfire/fpu/s_fabs.c b/sysdeps/m68k/coldfire/fpu/s_fabs.c
new file mode 100644
index 0000000000..45403cb172
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/s_fabs.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+double
+__fabs (double x)
+{
+  asm ("fdabs.d %1,%0" : "=f" (x) : "fm" (x));
+  return x;
+}
+weak_alias (__fabs, fabs)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__fabs, __fabsl)
+weak_alias (__fabs, fabsl)
+#endif
diff --git a/sysdeps/m68k/coldfire/fpu/s_fabsf.c b/sysdeps/m68k/coldfire/fpu/s_fabsf.c
new file mode 100644
index 0000000000..7622cc9658
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/s_fabsf.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+float
+__fabsf (float x)
+{
+  asm ("fsabs.s %1,%0" : "=f" (x) : "dm" (x));
+  return x;
+}
+weak_alias (__fabsf, fabsf)
diff --git a/sysdeps/m68k/coldfire/fpu/s_lrint.c b/sysdeps/m68k/coldfire/fpu/s_lrint.c
new file mode 100644
index 0000000000..81fae959be
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/s_lrint.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+long int
+__lrint (double x)
+{
+  long int result;
+  asm ("fmove.l %1,%0" : "=dm" (result) : "f" (x));
+  return result;
+}
+weak_alias (__lrint, lrint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lrint, __lrintl)
+weak_alias (__lrint, lrintl)
+#endif
diff --git a/sysdeps/m68k/coldfire/fpu/s_lrintf.c b/sysdeps/m68k/coldfire/fpu/s_lrintf.c
new file mode 100644
index 0000000000..87ae5e0b97
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/s_lrintf.c
@@ -0,0 +1,26 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+long int
+__lrintf (float x)
+{
+  long int result;
+  asm ("fmove.l %1,%0" : "=dm" (result) : "f" (x));
+  return result;
+}
+weak_alias (__lrintf, lrintf)
diff --git a/sysdeps/m68k/coldfire/fpu/s_rint.c b/sysdeps/m68k/coldfire/fpu/s_rint.c
new file mode 100644
index 0000000000..7be8bb6e2a
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/s_rint.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+double
+__rint (double x)
+{
+  asm ("fint.d %1,%0" : "=f" (x) : "fm" (x));
+  return x;
+}
+weak_alias (__rint, rint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__rint, __rintl)
+weak_alias (__rint, rintl)
+#endif
diff --git a/sysdeps/m68k/coldfire/fpu/s_rintf.c b/sysdeps/m68k/coldfire/fpu/s_rintf.c
new file mode 100644
index 0000000000..2337d74404
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/s_rintf.c
@@ -0,0 +1,26 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+float
+__rintf (float x)
+{
+  double result;
+  asm ("fint.s %1,%0" : "=f" (result) : "dm" (x));
+  return (float) result;
+}
+weak_alias (__rintf, rintf)
diff --git a/sysdeps/m68k/coldfire/shlib-versions b/sysdeps/m68k/coldfire/shlib-versions
new file mode 100644
index 0000000000..f4c68b2a51
--- /dev/null
+++ b/sysdeps/m68k/coldfire/shlib-versions
@@ -0,0 +1 @@
+m68k-.*-linux.*         DEFAULT                 GLIBC_2.4
diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h
index f31b68772d..fad1ef9e08 100644
--- a/sysdeps/m68k/dl-machine.h
+++ b/sysdeps/m68k/dl-machine.h
@@ -23,6 +23,7 @@
 #define ELF_MACHINE_NAME "m68k"
 
 #include <sys/param.h>
+#include <sysdep.h>
 
 /* Return nonzero iff ELF header is compatible with the running host.  */
 static inline int
@@ -48,7 +49,7 @@ static inline Elf32_Addr
 elf_machine_load_address (void)
 {
   Elf32_Addr addr;
-  asm ("lea _dl_start(%%pc), %0\n\t"
+  asm (PCREL_OP ("lea", "_dl_start", "%0", "%0", "%%pc") "\n\t"
        "sub.l _dl_start@GOT.w(%%a5), %0"
        : "=a" (addr));
   return addr;
@@ -130,7 +131,7 @@ _dl_start_user:\n\
 	move.l %d0, %a4\n\
 	| See if we were run as a command with the executable file\n\
 	| name as an extra leading argument.\n\
-	move.l _dl_skip_args(%pc), %d0\n\
+	" PCREL_OP ("move.l", "_dl_skip_args", "%d0", "%d0", "%pc") "\n\
 	| Pop the original argument count\n\
 	move.l (%sp)+, %d1\n\
 	| Subtract _dl_skip_args from it.\n\
@@ -143,12 +144,12 @@ _dl_start_user:\n\
 	pea 8(%sp, %d1*4)\n\
 	pea 8(%sp)\n\
 	move.l %d1, -(%sp)\n\
-	move.l _rtld_local(%pc), -(%sp)\n\
+	" PCREL_OP ("move.l", "_rtld_local", "-(%sp)", "%d0", "%pc") "\n\
 	jbsr _dl_init_internal@PLTPC\n\
 	addq.l #8, %sp\n\
 	addq.l #8, %sp\n\
 	| Pass our finalizer function to the user in %a1.\n\
-	lea _dl_fini(%pc), %a1\n\
+	" PCREL_OP ("lea", "_dl_fini", "%a1", "%a1", "%pc") "\n\
 	| Initialize %fp with the stack pointer.\n\
 	move.l %sp, %fp\n\
 	| Jump to the user's entry point.\n\
diff --git a/sysdeps/m68k/dl-trampoline.S b/sysdeps/m68k/dl-trampoline.S
index 8791280371..e324da1085 100644
--- a/sysdeps/m68k/dl-trampoline.S
+++ b/sysdeps/m68k/dl-trampoline.S
@@ -34,7 +34,12 @@ _dl_runtime_resolve:
 	| Pop parameters
 	addq.l #8, %sp
 	| Call real function.
+#ifdef __mcoldfire__
+	move.l %d0,-(%sp)
+	rts
+#else
 	jmp (%d0)
+#endif
 	.size _dl_runtime_resolve, . - _dl_runtime_resolve
 
 	.text
@@ -64,7 +69,12 @@ _dl_runtime_profile:
 	move.l (%sp)+, %a1
 	lea 12(%sp), %sp
 	| Call real function.
+#ifdef __mcoldfire__
+	move.l %d0,-(%sp)
+	rts
+#else
 	jmp (%d0)
+#endif
 
 	/*
 	    +24     return address
@@ -79,15 +89,24 @@ _dl_runtime_profile:
 	move.l %sp, %a2
 	move.l %sp, %a0
 	lea 28(%sp), %a1
-	| Round framesize up to even
-	addq.l #1, %d1
-	lsr #1, %d1
-	sub.l %d1, %a0
+	| Round framesize up to longword alignment
+	addq.l #3, %d1
+	and.l #-3, %d1
 	sub.l %d1, %a0
 	move.l %a0, %sp
+#ifdef __mcoldfire__
+	tst.l %d1
+	beq 2f
+1:	move.l (%a0)+, (%a1)+
+	subq.l #4,%d1
+	bne 1b
+2:
+#else
+	lsr.l #2,%d1
 	jra 2f
-1:	move.w (%a1)+, (%a0)+
+1:	move.l (%a1)+, (%a0)+
 2:	dbra %d1,1b
+#endif
 	/*
 	   %a2+24  return address
 	   %a2+20  PLT1
@@ -101,7 +120,14 @@ _dl_runtime_profile:
 
 	move.l 4(%a2), %a0
 	move.l 8(%a2), %a1
+#ifdef __mcoldfire__
+	pea 2f(%pc)
+	move.l %d0,-(%sp)
+	rts
+2:
+#else
 	jsr (%d0)
+#endif
 	move.l %a2, %sp
 	move.l (%sp)+, %a2
 	/*
@@ -112,18 +138,34 @@ _dl_runtime_profile:
 	    +4      %a1
 	   %sp      %a0
 	*/
+#ifdef __mcoldfire__
+	fmove.l %fp0, -(%sp)
+#else
 	fmove.x %fp0, -(%sp)
+#endif
+	move.l %a0, -(%sp)
 	move.l %d1, -(%sp)
 	move.l %d0, -(%sp)
 	pea (%sp)
-	pea 20(%sp)
+#ifdef __mcoldfire__
+	pea 24(%sp)
 	move.l 40(%sp), -(%sp)
 	move.l 40(%sp), -(%sp)
+#else
+	pea 28(%sp)
+	move.l 44(%sp), -(%sp)
+	move.l 44(%sp), -(%sp)
+#endif
 	jbsr _dl_call_pltexit
 	lea 16(%sp), %sp
 	move.l (%sp)+, %d0
 	move.l (%sp)+, %d1
+	move.l (%sp)+, %a0
+#ifdef __mcoldfire__
+	fmove.d (%sp)+, %fp0
+#else
 	fmove.x (%sp)+, %fp0
+#endif
 	lea 20(%sp), %sp
 	rts
 	.size _dl_runtime_profile, . - _dl_runtime_profile
diff --git a/sysdeps/m68k/fpu/fegetenv.c b/sysdeps/m68k/fpu/fegetenv.c
index 6c94b07318..6f23e8b749 100644
--- a/sysdeps/m68k/fpu/fegetenv.c
+++ b/sysdeps/m68k/fpu/fegetenv.c
@@ -23,7 +23,13 @@
 int
 __fegetenv (fenv_t *envp)
 {
+#ifdef __mcoldfire__
+  __asm__ ("fmove%.l %/fpcr,%0" : "=dm" (envp->__control_register));
+  __asm__ ("fmove%.l %/fpsr,%0" : "=dm" (envp->__status_register));
+  __asm__ ("fmove%.l %/fpiar,%0" : "=dm" (envp->__instruction_address));
+#else
   __asm__ ("fmovem%.l %/fpcr/%/fpsr/%/fpiar,%0" : "=m" (*envp));
+#endif
 
   /* Success.  */
   return 0;
diff --git a/sysdeps/m68k/fpu/feholdexcpt.c b/sysdeps/m68k/fpu/feholdexcpt.c
index 88fb1c59ac..8f0d15f617 100644
--- a/sysdeps/m68k/fpu/feholdexcpt.c
+++ b/sysdeps/m68k/fpu/feholdexcpt.c
@@ -26,7 +26,13 @@ feholdexcept (fenv_t *envp)
   fexcept_t fpcr, fpsr;
 
   /* Store the environment.  */
+#ifdef __mcoldfire__
+  __asm__ ("fmove%.l %/fpcr,%0" : "=dm" (envp->__control_register));
+  __asm__ ("fmove%.l %/fpsr,%0" : "=dm" (envp->__status_register));
+  __asm__ ("fmove%.l %/fpiar,%0" : "=dm" (envp->__instruction_address));
+#else
   __asm__ ("fmovem%.l %/fpcr/%/fpsr/%/fpiar,%0" : "=m" (*envp));
+#endif
 
   /* Now clear all exceptions.  */
   fpsr = envp->__status_register & ~FE_ALL_EXCEPT;
@@ -37,3 +43,4 @@ feholdexcept (fenv_t *envp)
 
   return 0;
 }
+libm_hidden_def (feholdexcept);
diff --git a/sysdeps/m68k/fpu/fesetenv.c b/sysdeps/m68k/fpu/fesetenv.c
index 20653f0ddc..931b2e4bd3 100644
--- a/sysdeps/m68k/fpu/fesetenv.c
+++ b/sysdeps/m68k/fpu/fesetenv.c
@@ -29,7 +29,13 @@ __fesetenv (const fenv_t *envp)
      values which we do not want to come from the saved environment.
      Therefore, we get the current environment and replace the values
      we want to use from the environment specified by the parameter.  */
+#ifdef __mcoldfire__
+  __asm__ ("fmove%.l %/fpcr,%0" : "=dm" (temp.__control_register));
+  __asm__ ("fmove%.l %/fpsr,%0" : "=dm" (temp.__status_register));
+  __asm__ ("fmove%.l %/fpiar,%0" : "=dm" (temp.__instruction_address));
+#else
   __asm__ ("fmovem%.l %/fpcr/%/fpsr/%/fpiar,%0" : "=m" (*&temp));
+#endif
 
   temp.__status_register &= ~FE_ALL_EXCEPT;
   temp.__control_register &= ~((FE_ALL_EXCEPT << 6) | FE_UPWARD);
@@ -44,7 +50,16 @@ __fesetenv (const fenv_t *envp)
       temp.__status_register |= envp->__status_register & FE_ALL_EXCEPT;
     }
 
+#ifdef __mcoldfire__
+  __asm__ __volatile__ ("fmove%.l %0,%/fpiar"
+			:: "dm" (temp.__instruction_address));
+  __asm__ __volatile__ ("fmove%.l %0,%/fpcr"
+			:: "dm" (temp.__control_register));
+  __asm__ __volatile__ ("fmove%.l %0,%/fpsr"
+			:: "dm" (temp.__status_register));
+#else
   __asm__ __volatile__ ("fmovem%.l %0,%/fpcr/%/fpsr/%/fpiar" : : "m" (*&temp));
+#endif
 
   /* Success.  */
   return 0;
diff --git a/sysdeps/m68k/fpu/fesetround.c b/sysdeps/m68k/fpu/fesetround.c
index 956325de8a..f9c1da8593 100644
--- a/sysdeps/m68k/fpu/fesetround.c
+++ b/sysdeps/m68k/fpu/fesetround.c
@@ -36,3 +36,4 @@ fesetround (int round)
 
   return 0;
 }
+libm_hidden_def (fesetround);
diff --git a/sysdeps/m68k/fpu_control.h b/sysdeps/m68k/fpu_control.h
index 86358e6559..cef5625fa7 100644
--- a/sysdeps/m68k/fpu_control.h
+++ b/sysdeps/m68k/fpu_control.h
@@ -30,9 +30,9 @@
  * 12     -> enable trap for OVFL exception
  * 11     -> enable trap for UNFL exception
  * 10     -> enable trap for DZ exception
- *  9     -> enable trap for INEX2 exception
- *  8     -> enable trap for INEX1 exception
- *  7-6   -> Precision Control
+ *  9     -> enable trap for INEX2 exception (INEX on Coldfire)
+ *  8     -> enable trap for INEX1 exception (IDE on Coldfire)
+ *  7-6   -> Precision Control (only bit 6 is used on Coldfire)
  *  5-4   -> Rounding Control
  *  3-0   -> zero (read as 0, write as 0)
  *
@@ -65,8 +65,12 @@
 #define _FPU_MASK_INEX2 0x0100
 
 /* precision control */
+#ifdef __mcoldfire__
+#define _FPU_DOUBLE   0x00
+#else
 #define _FPU_EXTENDED 0x00   /* RECOMMENDED */
 #define _FPU_DOUBLE   0x80
+#endif
 #define _FPU_SINGLE   0x40     /* DO NOT USE */
 
 /* rounding control */
@@ -75,7 +79,11 @@
 #define _FPU_RC_DOWN    0x20
 #define _FPU_RC_UP      0x30
 
+#ifdef __mcoldfire__
+#define _FPU_RESERVED 0xFFFF800F
+#else
 #define _FPU_RESERVED 0xFFFF000F  /* Reserved bits in fpucr */
+#endif
 
 
 /* Now two recommended fpucr */
diff --git a/sysdeps/m68k/ldsodefs.h b/sysdeps/m68k/ldsodefs.h
new file mode 100644
index 0000000000..2eda4a8579
--- /dev/null
+++ b/sysdeps/m68k/ldsodefs.h
@@ -0,0 +1,43 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef __LDSODEFS_H
+
+#include <elf.h>
+
+struct La_m68k_regs;
+struct La_m68k_retval;
+
+#define ARCH_PLTENTER_MEMBERS						\
+    Elf32_Addr (*m68k_gnu_pltenter) (Elf32_Sym *, unsigned int,		\
+				     uintptr_t *, uintptr_t *,		\
+				     const struct La_m68k_regs *,	\
+				     unsigned int *, const char *name,  \
+				     long int *framesizep);
+
+#define ARCH_PLTEXIT_MEMBERS						\
+    unsigned int (*m68k_gnu_pltexit) (Elf32_Sym *, unsigned int,	\
+				      uintptr_t *, uintptr_t *,		\
+				      const struct La_m68k_regs *,	\
+				      struct La_m68k_retval *,		\
+				      const char *);
+
+#include_next <ldsodefs.h>
+
+#endif
diff --git a/sysdeps/m68k/m680x0/Implies b/sysdeps/m68k/m680x0/Implies
new file mode 100644
index 0000000000..abf356d9e8
--- /dev/null
+++ b/sysdeps/m68k/m680x0/Implies
@@ -0,0 +1 @@
+ieee754/ldbl-96
diff --git a/sysdeps/m68k/m680x0/Makefile b/sysdeps/m68k/m680x0/Makefile
new file mode 100644
index 0000000000..582fa6f900
--- /dev/null
+++ b/sysdeps/m68k/m680x0/Makefile
@@ -0,0 +1,2 @@
+# The 68k `long double' is a distinct type we support.
+long-double-fcts = yes
diff --git a/sysdeps/m68k/add_n.S b/sysdeps/m68k/m680x0/add_n.S
index a9558491e8..a9558491e8 100644
--- a/sysdeps/m68k/add_n.S
+++ b/sysdeps/m68k/m680x0/add_n.S
diff --git a/sysdeps/m68k/bits/huge_vall.h b/sysdeps/m68k/m680x0/bits/huge_vall.h
index 8b9630c6df..8b9630c6df 100644
--- a/sysdeps/m68k/bits/huge_vall.h
+++ b/sysdeps/m68k/m680x0/bits/huge_vall.h
diff --git a/sysdeps/m68k/bits/mathdef.h b/sysdeps/m68k/m680x0/bits/mathdef.h
index 65cf8d49f6..65cf8d49f6 100644
--- a/sysdeps/m68k/bits/mathdef.h
+++ b/sysdeps/m68k/m680x0/bits/mathdef.h
diff --git a/sysdeps/m68k/fpu/Makefile b/sysdeps/m68k/m680x0/fpu/Makefile
index 42db6381d3..42db6381d3 100644
--- a/sysdeps/m68k/fpu/Makefile
+++ b/sysdeps/m68k/m680x0/fpu/Makefile
diff --git a/sysdeps/m68k/fpu/bits/mathinline.h b/sysdeps/m68k/m680x0/fpu/bits/mathinline.h
index acbac47aac..acbac47aac 100644
--- a/sysdeps/m68k/fpu/bits/mathinline.h
+++ b/sysdeps/m68k/m680x0/fpu/bits/mathinline.h
diff --git a/sysdeps/m68k/fpu/branred.c b/sysdeps/m68k/m680x0/fpu/branred.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/branred.c
+++ b/sysdeps/m68k/m680x0/fpu/branred.c
diff --git a/sysdeps/m68k/fpu/doasin.c b/sysdeps/m68k/m680x0/fpu/doasin.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/doasin.c
+++ b/sysdeps/m68k/m680x0/fpu/doasin.c
diff --git a/sysdeps/m68k/fpu/dosincos.c b/sysdeps/m68k/m680x0/fpu/dosincos.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/dosincos.c
+++ b/sysdeps/m68k/m680x0/fpu/dosincos.c
diff --git a/sysdeps/m68k/fpu/e_acos.c b/sysdeps/m68k/m680x0/fpu/e_acos.c
index c9f6c6a162..c9f6c6a162 100644
--- a/sysdeps/m68k/fpu/e_acos.c
+++ b/sysdeps/m68k/m680x0/fpu/e_acos.c
diff --git a/sysdeps/m68k/fpu/e_acosf.c b/sysdeps/m68k/m680x0/fpu/e_acosf.c
index 90665082d3..90665082d3 100644
--- a/sysdeps/m68k/fpu/e_acosf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_acosf.c
diff --git a/sysdeps/m68k/fpu/e_acosl.c b/sysdeps/m68k/m680x0/fpu/e_acosl.c
index e3dcd170f3..e3dcd170f3 100644
--- a/sysdeps/m68k/fpu/e_acosl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_acosl.c
diff --git a/sysdeps/m68k/fpu/e_asin.c b/sysdeps/m68k/m680x0/fpu/e_asin.c
index b6176c708a..b6176c708a 100644
--- a/sysdeps/m68k/fpu/e_asin.c
+++ b/sysdeps/m68k/m680x0/fpu/e_asin.c
diff --git a/sysdeps/m68k/fpu/e_asinf.c b/sysdeps/m68k/m680x0/fpu/e_asinf.c
index 05fb82670b..05fb82670b 100644
--- a/sysdeps/m68k/fpu/e_asinf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_asinf.c
diff --git a/sysdeps/m68k/fpu/e_asinl.c b/sysdeps/m68k/m680x0/fpu/e_asinl.c
index 0dd89fb9da..0dd89fb9da 100644
--- a/sysdeps/m68k/fpu/e_asinl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_asinl.c
diff --git a/sysdeps/m68k/fpu/e_atan2.c b/sysdeps/m68k/m680x0/fpu/e_atan2.c
index 551b14db81..551b14db81 100644
--- a/sysdeps/m68k/fpu/e_atan2.c
+++ b/sysdeps/m68k/m680x0/fpu/e_atan2.c
diff --git a/sysdeps/m68k/fpu/e_atan2f.c b/sysdeps/m68k/m680x0/fpu/e_atan2f.c
index a0c750a759..a0c750a759 100644
--- a/sysdeps/m68k/fpu/e_atan2f.c
+++ b/sysdeps/m68k/m680x0/fpu/e_atan2f.c
diff --git a/sysdeps/m68k/fpu/e_atan2l.c b/sysdeps/m68k/m680x0/fpu/e_atan2l.c
index 426ca94baa..426ca94baa 100644
--- a/sysdeps/m68k/fpu/e_atan2l.c
+++ b/sysdeps/m68k/m680x0/fpu/e_atan2l.c
diff --git a/sysdeps/m68k/fpu/e_atanh.c b/sysdeps/m68k/m680x0/fpu/e_atanh.c
index 11bf430686..11bf430686 100644
--- a/sysdeps/m68k/fpu/e_atanh.c
+++ b/sysdeps/m68k/m680x0/fpu/e_atanh.c
diff --git a/sysdeps/m68k/fpu/e_atanhf.c b/sysdeps/m68k/m680x0/fpu/e_atanhf.c
index 7a8f92ecf3..7a8f92ecf3 100644
--- a/sysdeps/m68k/fpu/e_atanhf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_atanhf.c
diff --git a/sysdeps/m68k/fpu/e_atanhl.c b/sysdeps/m68k/m680x0/fpu/e_atanhl.c
index d8975d6782..d8975d6782 100644
--- a/sysdeps/m68k/fpu/e_atanhl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_atanhl.c
diff --git a/sysdeps/m68k/fpu/e_cosh.c b/sysdeps/m68k/m680x0/fpu/e_cosh.c
index 93d753c519..93d753c519 100644
--- a/sysdeps/m68k/fpu/e_cosh.c
+++ b/sysdeps/m68k/m680x0/fpu/e_cosh.c
diff --git a/sysdeps/m68k/fpu/e_coshf.c b/sysdeps/m68k/m680x0/fpu/e_coshf.c
index 433faf17b9..433faf17b9 100644
--- a/sysdeps/m68k/fpu/e_coshf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_coshf.c
diff --git a/sysdeps/m68k/fpu/e_coshl.c b/sysdeps/m68k/m680x0/fpu/e_coshl.c
index 39144fd202..39144fd202 100644
--- a/sysdeps/m68k/fpu/e_coshl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_coshl.c
diff --git a/sysdeps/m68k/fpu/e_exp.c b/sysdeps/m68k/m680x0/fpu/e_exp.c
index 1e95ac474d..1e95ac474d 100644
--- a/sysdeps/m68k/fpu/e_exp.c
+++ b/sysdeps/m68k/m680x0/fpu/e_exp.c
diff --git a/sysdeps/m68k/fpu/e_exp10.c b/sysdeps/m68k/m680x0/fpu/e_exp10.c
index a1dd224470..a1dd224470 100644
--- a/sysdeps/m68k/fpu/e_exp10.c
+++ b/sysdeps/m68k/m680x0/fpu/e_exp10.c
diff --git a/sysdeps/m68k/fpu/e_exp10f.c b/sysdeps/m68k/m680x0/fpu/e_exp10f.c
index 1b78bc3723..1b78bc3723 100644
--- a/sysdeps/m68k/fpu/e_exp10f.c
+++ b/sysdeps/m68k/m680x0/fpu/e_exp10f.c
diff --git a/sysdeps/m68k/fpu/e_exp10l.c b/sysdeps/m68k/m680x0/fpu/e_exp10l.c
index 5e901999fa..5e901999fa 100644
--- a/sysdeps/m68k/fpu/e_exp10l.c
+++ b/sysdeps/m68k/m680x0/fpu/e_exp10l.c
diff --git a/sysdeps/m68k/fpu/e_exp2.c b/sysdeps/m68k/m680x0/fpu/e_exp2.c
index 24fac4fce6..24fac4fce6 100644
--- a/sysdeps/m68k/fpu/e_exp2.c
+++ b/sysdeps/m68k/m680x0/fpu/e_exp2.c
diff --git a/sysdeps/m68k/fpu/e_exp2f.c b/sysdeps/m68k/m680x0/fpu/e_exp2f.c
index 593842e4e5..593842e4e5 100644
--- a/sysdeps/m68k/fpu/e_exp2f.c
+++ b/sysdeps/m68k/m680x0/fpu/e_exp2f.c
diff --git a/sysdeps/m68k/fpu/e_exp2l.c b/sysdeps/m68k/m680x0/fpu/e_exp2l.c
index 0ab2a428c0..0ab2a428c0 100644
--- a/sysdeps/m68k/fpu/e_exp2l.c
+++ b/sysdeps/m68k/m680x0/fpu/e_exp2l.c
diff --git a/sysdeps/m68k/fpu/e_expf.c b/sysdeps/m68k/m680x0/fpu/e_expf.c
index 2aeaacfab9..2aeaacfab9 100644
--- a/sysdeps/m68k/fpu/e_expf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_expf.c
diff --git a/sysdeps/m68k/fpu/e_expl.c b/sysdeps/m68k/m680x0/fpu/e_expl.c
index 8805a1b83a..8805a1b83a 100644
--- a/sysdeps/m68k/fpu/e_expl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_expl.c
diff --git a/sysdeps/m68k/fpu/e_fmod.c b/sysdeps/m68k/m680x0/fpu/e_fmod.c
index bd229ae4b0..bd229ae4b0 100644
--- a/sysdeps/m68k/fpu/e_fmod.c
+++ b/sysdeps/m68k/m680x0/fpu/e_fmod.c
diff --git a/sysdeps/m68k/fpu/e_fmodf.c b/sysdeps/m68k/m680x0/fpu/e_fmodf.c
index 88c350ce9e..88c350ce9e 100644
--- a/sysdeps/m68k/fpu/e_fmodf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_fmodf.c
diff --git a/sysdeps/m68k/fpu/e_fmodl.c b/sysdeps/m68k/m680x0/fpu/e_fmodl.c
index a46f19ea9d..a46f19ea9d 100644
--- a/sysdeps/m68k/fpu/e_fmodl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_fmodl.c
diff --git a/sysdeps/m68k/fpu/e_log.c b/sysdeps/m68k/m680x0/fpu/e_log.c
index 146dc0c784..146dc0c784 100644
--- a/sysdeps/m68k/fpu/e_log.c
+++ b/sysdeps/m68k/m680x0/fpu/e_log.c
diff --git a/sysdeps/m68k/fpu/e_log10.c b/sysdeps/m68k/m680x0/fpu/e_log10.c
index 06a9b87cb9..06a9b87cb9 100644
--- a/sysdeps/m68k/fpu/e_log10.c
+++ b/sysdeps/m68k/m680x0/fpu/e_log10.c
diff --git a/sysdeps/m68k/fpu/e_log10f.c b/sysdeps/m68k/m680x0/fpu/e_log10f.c
index 3896864ecb..3896864ecb 100644
--- a/sysdeps/m68k/fpu/e_log10f.c
+++ b/sysdeps/m68k/m680x0/fpu/e_log10f.c
diff --git a/sysdeps/m68k/fpu/e_log10l.c b/sysdeps/m68k/m680x0/fpu/e_log10l.c
index 6dcfc5a101..6dcfc5a101 100644
--- a/sysdeps/m68k/fpu/e_log10l.c
+++ b/sysdeps/m68k/m680x0/fpu/e_log10l.c
diff --git a/sysdeps/m68k/fpu/e_log2.c b/sysdeps/m68k/m680x0/fpu/e_log2.c
index 5528922b9c..5528922b9c 100644
--- a/sysdeps/m68k/fpu/e_log2.c
+++ b/sysdeps/m68k/m680x0/fpu/e_log2.c
diff --git a/sysdeps/m68k/fpu/e_log2f.c b/sysdeps/m68k/m680x0/fpu/e_log2f.c
index 6b4907686d..6b4907686d 100644
--- a/sysdeps/m68k/fpu/e_log2f.c
+++ b/sysdeps/m68k/m680x0/fpu/e_log2f.c
diff --git a/sysdeps/m68k/fpu/e_log2l.c b/sysdeps/m68k/m680x0/fpu/e_log2l.c
index 4c92a11acf..4c92a11acf 100644
--- a/sysdeps/m68k/fpu/e_log2l.c
+++ b/sysdeps/m68k/m680x0/fpu/e_log2l.c
diff --git a/sysdeps/m68k/fpu/e_logf.c b/sysdeps/m68k/m680x0/fpu/e_logf.c
index bc23217c38..bc23217c38 100644
--- a/sysdeps/m68k/fpu/e_logf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_logf.c
diff --git a/sysdeps/m68k/fpu/e_logl.c b/sysdeps/m68k/m680x0/fpu/e_logl.c
index 03b1830759..03b1830759 100644
--- a/sysdeps/m68k/fpu/e_logl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_logl.c
diff --git a/sysdeps/m68k/fpu/e_pow.c b/sysdeps/m68k/m680x0/fpu/e_pow.c
index 0b6cee6f15..0b6cee6f15 100644
--- a/sysdeps/m68k/fpu/e_pow.c
+++ b/sysdeps/m68k/m680x0/fpu/e_pow.c
diff --git a/sysdeps/m68k/fpu/e_powf.c b/sysdeps/m68k/m680x0/fpu/e_powf.c
index 379014355a..379014355a 100644
--- a/sysdeps/m68k/fpu/e_powf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_powf.c
diff --git a/sysdeps/m68k/fpu/e_powl.c b/sysdeps/m68k/m680x0/fpu/e_powl.c
index f71fa34a26..f71fa34a26 100644
--- a/sysdeps/m68k/fpu/e_powl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_powl.c
diff --git a/sysdeps/m68k/fpu/e_rem_pio2.c b/sysdeps/m68k/m680x0/fpu/e_rem_pio2.c
index 1347b0468c..1347b0468c 100644
--- a/sysdeps/m68k/fpu/e_rem_pio2.c
+++ b/sysdeps/m68k/m680x0/fpu/e_rem_pio2.c
diff --git a/sysdeps/m68k/fpu/e_rem_pio2f.c b/sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c
index 1347b0468c..1347b0468c 100644
--- a/sysdeps/m68k/fpu/e_rem_pio2f.c
+++ b/sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c
diff --git a/sysdeps/m68k/fpu/e_rem_pio2l.c b/sysdeps/m68k/m680x0/fpu/e_rem_pio2l.c
index 1347b0468c..1347b0468c 100644
--- a/sysdeps/m68k/fpu/e_rem_pio2l.c
+++ b/sysdeps/m68k/m680x0/fpu/e_rem_pio2l.c
diff --git a/sysdeps/m68k/fpu/e_remainder.c b/sysdeps/m68k/m680x0/fpu/e_remainder.c
index aa31bc011e..aa31bc011e 100644
--- a/sysdeps/m68k/fpu/e_remainder.c
+++ b/sysdeps/m68k/m680x0/fpu/e_remainder.c
diff --git a/sysdeps/m68k/fpu/e_remainderf.c b/sysdeps/m68k/m680x0/fpu/e_remainderf.c
index b04f0c87c2..b04f0c87c2 100644
--- a/sysdeps/m68k/fpu/e_remainderf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_remainderf.c
diff --git a/sysdeps/m68k/fpu/e_remainderl.c b/sysdeps/m68k/m680x0/fpu/e_remainderl.c
index b9dc540cc5..b9dc540cc5 100644
--- a/sysdeps/m68k/fpu/e_remainderl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_remainderl.c
diff --git a/sysdeps/m68k/fpu/e_scalb.c b/sysdeps/m68k/m680x0/fpu/e_scalb.c
index 88edba1ca8..88edba1ca8 100644
--- a/sysdeps/m68k/fpu/e_scalb.c
+++ b/sysdeps/m68k/m680x0/fpu/e_scalb.c
diff --git a/sysdeps/m68k/fpu/e_scalbf.c b/sysdeps/m68k/m680x0/fpu/e_scalbf.c
index 7943571246..7943571246 100644
--- a/sysdeps/m68k/fpu/e_scalbf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_scalbf.c
diff --git a/sysdeps/m68k/fpu/e_scalbl.c b/sysdeps/m68k/m680x0/fpu/e_scalbl.c
index 35fb2dc0ed..35fb2dc0ed 100644
--- a/sysdeps/m68k/fpu/e_scalbl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_scalbl.c
diff --git a/sysdeps/m68k/fpu/e_sinh.c b/sysdeps/m68k/m680x0/fpu/e_sinh.c
index c6fed7ff46..c6fed7ff46 100644
--- a/sysdeps/m68k/fpu/e_sinh.c
+++ b/sysdeps/m68k/m680x0/fpu/e_sinh.c
diff --git a/sysdeps/m68k/fpu/e_sinhf.c b/sysdeps/m68k/m680x0/fpu/e_sinhf.c
index b5034b7b0e..b5034b7b0e 100644
--- a/sysdeps/m68k/fpu/e_sinhf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_sinhf.c
diff --git a/sysdeps/m68k/fpu/e_sinhl.c b/sysdeps/m68k/m680x0/fpu/e_sinhl.c
index 2f42d96a38..2f42d96a38 100644
--- a/sysdeps/m68k/fpu/e_sinhl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_sinhl.c
diff --git a/sysdeps/m68k/fpu/e_sqrt.c b/sysdeps/m68k/m680x0/fpu/e_sqrt.c
index 70f19710cc..70f19710cc 100644
--- a/sysdeps/m68k/fpu/e_sqrt.c
+++ b/sysdeps/m68k/m680x0/fpu/e_sqrt.c
diff --git a/sysdeps/m68k/fpu/e_sqrtf.c b/sysdeps/m68k/m680x0/fpu/e_sqrtf.c
index 5dc1904cb6..5dc1904cb6 100644
--- a/sysdeps/m68k/fpu/e_sqrtf.c
+++ b/sysdeps/m68k/m680x0/fpu/e_sqrtf.c
diff --git a/sysdeps/m68k/fpu/e_sqrtl.c b/sysdeps/m68k/m680x0/fpu/e_sqrtl.c
index fede1024a2..fede1024a2 100644
--- a/sysdeps/m68k/fpu/e_sqrtl.c
+++ b/sysdeps/m68k/m680x0/fpu/e_sqrtl.c
diff --git a/sysdeps/m68k/fpu/fraiseexcpt.c b/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
index 69f746c9b2..69f746c9b2 100644
--- a/sysdeps/m68k/fpu/fraiseexcpt.c
+++ b/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
diff --git a/sysdeps/m68k/fpu/halfulp.c b/sysdeps/m68k/m680x0/fpu/halfulp.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/halfulp.c
+++ b/sysdeps/m68k/m680x0/fpu/halfulp.c
diff --git a/sysdeps/m68k/fpu/k_cos.c b/sysdeps/m68k/m680x0/fpu/k_cos.c
index dd6c215c23..dd6c215c23 100644
--- a/sysdeps/m68k/fpu/k_cos.c
+++ b/sysdeps/m68k/m680x0/fpu/k_cos.c
diff --git a/sysdeps/m68k/fpu/k_cosf.c b/sysdeps/m68k/m680x0/fpu/k_cosf.c
index 2a366d094b..2a366d094b 100644
--- a/sysdeps/m68k/fpu/k_cosf.c
+++ b/sysdeps/m68k/m680x0/fpu/k_cosf.c
diff --git a/sysdeps/m68k/fpu/k_cosl.c b/sysdeps/m68k/m680x0/fpu/k_cosl.c
index 983b66544c..983b66544c 100644
--- a/sysdeps/m68k/fpu/k_cosl.c
+++ b/sysdeps/m68k/m680x0/fpu/k_cosl.c
diff --git a/sysdeps/m68k/fpu/k_rem_pio2.c b/sysdeps/m68k/m680x0/fpu/k_rem_pio2.c
index 1347b0468c..1347b0468c 100644
--- a/sysdeps/m68k/fpu/k_rem_pio2.c
+++ b/sysdeps/m68k/m680x0/fpu/k_rem_pio2.c
diff --git a/sysdeps/m68k/fpu/k_rem_pio2f.c b/sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c
index 1347b0468c..1347b0468c 100644
--- a/sysdeps/m68k/fpu/k_rem_pio2f.c
+++ b/sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c
diff --git a/sysdeps/m68k/fpu/k_rem_pio2l.c b/sysdeps/m68k/m680x0/fpu/k_rem_pio2l.c
index 1347b0468c..1347b0468c 100644
--- a/sysdeps/m68k/fpu/k_rem_pio2l.c
+++ b/sysdeps/m68k/m680x0/fpu/k_rem_pio2l.c
diff --git a/sysdeps/m68k/fpu/k_sin.c b/sysdeps/m68k/m680x0/fpu/k_sin.c
index 652ca0e131..652ca0e131 100644
--- a/sysdeps/m68k/fpu/k_sin.c
+++ b/sysdeps/m68k/m680x0/fpu/k_sin.c
diff --git a/sysdeps/m68k/fpu/k_sinf.c b/sysdeps/m68k/m680x0/fpu/k_sinf.c
index 7050347c4b..7050347c4b 100644
--- a/sysdeps/m68k/fpu/k_sinf.c
+++ b/sysdeps/m68k/m680x0/fpu/k_sinf.c
diff --git a/sysdeps/m68k/fpu/k_sinl.c b/sysdeps/m68k/m680x0/fpu/k_sinl.c
index 5a647cafd7..5a647cafd7 100644
--- a/sysdeps/m68k/fpu/k_sinl.c
+++ b/sysdeps/m68k/m680x0/fpu/k_sinl.c
diff --git a/sysdeps/m68k/fpu/k_tan.c b/sysdeps/m68k/m680x0/fpu/k_tan.c
index 28f6a80cf5..28f6a80cf5 100644
--- a/sysdeps/m68k/fpu/k_tan.c
+++ b/sysdeps/m68k/m680x0/fpu/k_tan.c
diff --git a/sysdeps/m68k/fpu/k_tanf.c b/sysdeps/m68k/m680x0/fpu/k_tanf.c
index 777af1bf13..777af1bf13 100644
--- a/sysdeps/m68k/fpu/k_tanf.c
+++ b/sysdeps/m68k/m680x0/fpu/k_tanf.c
diff --git a/sysdeps/m68k/fpu/k_tanl.c b/sysdeps/m68k/m680x0/fpu/k_tanl.c
index f2570e681f..f2570e681f 100644
--- a/sysdeps/m68k/fpu/k_tanl.c
+++ b/sysdeps/m68k/m680x0/fpu/k_tanl.c
diff --git a/sysdeps/m68k/fpu/libm-test-ulps b/sysdeps/m68k/m680x0/fpu/libm-test-ulps
index 854c10cb1a..854c10cb1a 100644
--- a/sysdeps/m68k/fpu/libm-test-ulps
+++ b/sysdeps/m68k/m680x0/fpu/libm-test-ulps
diff --git a/sysdeps/m68k/fpu/mathimpl.h b/sysdeps/m68k/m680x0/fpu/mathimpl.h
index bbcaf84859..bbcaf84859 100644
--- a/sysdeps/m68k/fpu/mathimpl.h
+++ b/sysdeps/m68k/m680x0/fpu/mathimpl.h
diff --git a/sysdeps/m68k/fpu/mpa.c b/sysdeps/m68k/m680x0/fpu/mpa.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/mpa.c
+++ b/sysdeps/m68k/m680x0/fpu/mpa.c
diff --git a/sysdeps/m68k/fpu/mpatan.c b/sysdeps/m68k/m680x0/fpu/mpatan.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/mpatan.c
+++ b/sysdeps/m68k/m680x0/fpu/mpatan.c
diff --git a/sysdeps/m68k/fpu/mpatan2.c b/sysdeps/m68k/m680x0/fpu/mpatan2.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/mpatan2.c
+++ b/sysdeps/m68k/m680x0/fpu/mpatan2.c
diff --git a/sysdeps/m68k/fpu/mpexp.c b/sysdeps/m68k/m680x0/fpu/mpexp.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/mpexp.c
+++ b/sysdeps/m68k/m680x0/fpu/mpexp.c
diff --git a/sysdeps/m68k/fpu/mplog.c b/sysdeps/m68k/m680x0/fpu/mplog.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/mplog.c
+++ b/sysdeps/m68k/m680x0/fpu/mplog.c
diff --git a/sysdeps/m68k/fpu/mpsqrt.c b/sysdeps/m68k/m680x0/fpu/mpsqrt.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/mpsqrt.c
+++ b/sysdeps/m68k/m680x0/fpu/mpsqrt.c
diff --git a/sysdeps/m68k/fpu/mptan.c b/sysdeps/m68k/m680x0/fpu/mptan.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/mptan.c
+++ b/sysdeps/m68k/m680x0/fpu/mptan.c
diff --git a/sysdeps/m68k/fpu/s_atan.c b/sysdeps/m68k/m680x0/fpu/s_atan.c
index 8cca490d2a..8cca490d2a 100644
--- a/sysdeps/m68k/fpu/s_atan.c
+++ b/sysdeps/m68k/m680x0/fpu/s_atan.c
diff --git a/sysdeps/m68k/fpu/s_atanf.c b/sysdeps/m68k/m680x0/fpu/s_atanf.c
index c98559a8ba..c98559a8ba 100644
--- a/sysdeps/m68k/fpu/s_atanf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_atanf.c
diff --git a/sysdeps/m68k/fpu/s_atanl.c b/sysdeps/m68k/m680x0/fpu/s_atanl.c
index b7e608addd..b7e608addd 100644
--- a/sysdeps/m68k/fpu/s_atanl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_atanl.c
diff --git a/sysdeps/m68k/fpu/s_ccos.c b/sysdeps/m68k/m680x0/fpu/s_ccos.c
index d302d3d86b..d302d3d86b 100644
--- a/sysdeps/m68k/fpu/s_ccos.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ccos.c
diff --git a/sysdeps/m68k/fpu/s_ccosf.c b/sysdeps/m68k/m680x0/fpu/s_ccosf.c
index f5e8a41faf..f5e8a41faf 100644
--- a/sysdeps/m68k/fpu/s_ccosf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ccosf.c
diff --git a/sysdeps/m68k/fpu/s_ccosh.c b/sysdeps/m68k/m680x0/fpu/s_ccosh.c
index 1698881b9f..1698881b9f 100644
--- a/sysdeps/m68k/fpu/s_ccosh.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ccosh.c
diff --git a/sysdeps/m68k/fpu/s_ccoshf.c b/sysdeps/m68k/m680x0/fpu/s_ccoshf.c
index 3c8e7c7bb7..3c8e7c7bb7 100644
--- a/sysdeps/m68k/fpu/s_ccoshf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ccoshf.c
diff --git a/sysdeps/m68k/fpu/s_ccoshl.c b/sysdeps/m68k/m680x0/fpu/s_ccoshl.c
index 772d5786cf..772d5786cf 100644
--- a/sysdeps/m68k/fpu/s_ccoshl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ccoshl.c
diff --git a/sysdeps/m68k/fpu/s_ccosl.c b/sysdeps/m68k/m680x0/fpu/s_ccosl.c
index aaff365208..aaff365208 100644
--- a/sysdeps/m68k/fpu/s_ccosl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ccosl.c
diff --git a/sysdeps/m68k/fpu/s_ceil.c b/sysdeps/m68k/m680x0/fpu/s_ceil.c
index 93d5ad72e5..93d5ad72e5 100644
--- a/sysdeps/m68k/fpu/s_ceil.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ceil.c
diff --git a/sysdeps/m68k/fpu/s_ceilf.c b/sysdeps/m68k/m680x0/fpu/s_ceilf.c
index b3ba6a5700..b3ba6a5700 100644
--- a/sysdeps/m68k/fpu/s_ceilf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ceilf.c
diff --git a/sysdeps/m68k/fpu/s_ceill.c b/sysdeps/m68k/m680x0/fpu/s_ceill.c
index 2bf95b00c6..2bf95b00c6 100644
--- a/sysdeps/m68k/fpu/s_ceill.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ceill.c
diff --git a/sysdeps/m68k/fpu/s_cexp.c b/sysdeps/m68k/m680x0/fpu/s_cexp.c
index 4babf12685..4babf12685 100644
--- a/sysdeps/m68k/fpu/s_cexp.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cexp.c
diff --git a/sysdeps/m68k/fpu/s_cexpf.c b/sysdeps/m68k/m680x0/fpu/s_cexpf.c
index 177a360f9b..177a360f9b 100644
--- a/sysdeps/m68k/fpu/s_cexpf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cexpf.c
diff --git a/sysdeps/m68k/fpu/s_cexpl.c b/sysdeps/m68k/m680x0/fpu/s_cexpl.c
index bbda4ba990..bbda4ba990 100644
--- a/sysdeps/m68k/fpu/s_cexpl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cexpl.c
diff --git a/sysdeps/m68k/fpu/s_cos.c b/sysdeps/m68k/m680x0/fpu/s_cos.c
index 9c96076316..9c96076316 100644
--- a/sysdeps/m68k/fpu/s_cos.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cos.c
diff --git a/sysdeps/m68k/fpu/s_cosf.c b/sysdeps/m68k/m680x0/fpu/s_cosf.c
index db965b8cc1..db965b8cc1 100644
--- a/sysdeps/m68k/fpu/s_cosf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cosf.c
diff --git a/sysdeps/m68k/fpu/s_cosl.c b/sysdeps/m68k/m680x0/fpu/s_cosl.c
index 4198feef18..4198feef18 100644
--- a/sysdeps/m68k/fpu/s_cosl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cosl.c
diff --git a/sysdeps/m68k/fpu/s_csin.c b/sysdeps/m68k/m680x0/fpu/s_csin.c
index 7c590e4af6..7c590e4af6 100644
--- a/sysdeps/m68k/fpu/s_csin.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csin.c
diff --git a/sysdeps/m68k/fpu/s_csinf.c b/sysdeps/m68k/m680x0/fpu/s_csinf.c
index b760e192c3..b760e192c3 100644
--- a/sysdeps/m68k/fpu/s_csinf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csinf.c
diff --git a/sysdeps/m68k/fpu/s_csinh.c b/sysdeps/m68k/m680x0/fpu/s_csinh.c
index dafb82af1a..dafb82af1a 100644
--- a/sysdeps/m68k/fpu/s_csinh.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csinh.c
diff --git a/sysdeps/m68k/fpu/s_csinhf.c b/sysdeps/m68k/m680x0/fpu/s_csinhf.c
index 2f7a43e6a8..2f7a43e6a8 100644
--- a/sysdeps/m68k/fpu/s_csinhf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csinhf.c
diff --git a/sysdeps/m68k/fpu/s_csinhl.c b/sysdeps/m68k/m680x0/fpu/s_csinhl.c
index 026a20e7be..026a20e7be 100644
--- a/sysdeps/m68k/fpu/s_csinhl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csinhl.c
diff --git a/sysdeps/m68k/fpu/s_csinl.c b/sysdeps/m68k/m680x0/fpu/s_csinl.c
index ea2dad0556..ea2dad0556 100644
--- a/sysdeps/m68k/fpu/s_csinl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csinl.c
diff --git a/sysdeps/m68k/fpu/s_expm1.c b/sysdeps/m68k/m680x0/fpu/s_expm1.c
index 1ef99e21c9..1ef99e21c9 100644
--- a/sysdeps/m68k/fpu/s_expm1.c
+++ b/sysdeps/m68k/m680x0/fpu/s_expm1.c
diff --git a/sysdeps/m68k/fpu/s_expm1f.c b/sysdeps/m68k/m680x0/fpu/s_expm1f.c
index 84935b1b4a..84935b1b4a 100644
--- a/sysdeps/m68k/fpu/s_expm1f.c
+++ b/sysdeps/m68k/m680x0/fpu/s_expm1f.c
diff --git a/sysdeps/m68k/fpu/s_expm1l.c b/sysdeps/m68k/m680x0/fpu/s_expm1l.c
index feee07a1d8..feee07a1d8 100644
--- a/sysdeps/m68k/fpu/s_expm1l.c
+++ b/sysdeps/m68k/m680x0/fpu/s_expm1l.c
diff --git a/sysdeps/m68k/fpu/s_fabs.c b/sysdeps/m68k/m680x0/fpu/s_fabs.c
index 1f0631e2ff..1f0631e2ff 100644
--- a/sysdeps/m68k/fpu/s_fabs.c
+++ b/sysdeps/m68k/m680x0/fpu/s_fabs.c
diff --git a/sysdeps/m68k/fpu/s_fabsf.c b/sysdeps/m68k/m680x0/fpu/s_fabsf.c
index 8f9421998a..8f9421998a 100644
--- a/sysdeps/m68k/fpu/s_fabsf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_fabsf.c
diff --git a/sysdeps/m68k/fpu/s_fabsl.c b/sysdeps/m68k/m680x0/fpu/s_fabsl.c
index 8ac14d5b8c..8ac14d5b8c 100644
--- a/sysdeps/m68k/fpu/s_fabsl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_fabsl.c
diff --git a/sysdeps/m68k/fpu/s_finite.c b/sysdeps/m68k/m680x0/fpu/s_finite.c
index dafbd5901d..dafbd5901d 100644
--- a/sysdeps/m68k/fpu/s_finite.c
+++ b/sysdeps/m68k/m680x0/fpu/s_finite.c
diff --git a/sysdeps/m68k/fpu/s_finitef.c b/sysdeps/m68k/m680x0/fpu/s_finitef.c
index b81342e5c6..b81342e5c6 100644
--- a/sysdeps/m68k/fpu/s_finitef.c
+++ b/sysdeps/m68k/m680x0/fpu/s_finitef.c
diff --git a/sysdeps/m68k/fpu/s_finitel.c b/sysdeps/m68k/m680x0/fpu/s_finitel.c
index bd346a220c..bd346a220c 100644
--- a/sysdeps/m68k/fpu/s_finitel.c
+++ b/sysdeps/m68k/m680x0/fpu/s_finitel.c
diff --git a/sysdeps/m68k/fpu/s_floor.c b/sysdeps/m68k/m680x0/fpu/s_floor.c
index e1219c602a..e1219c602a 100644
--- a/sysdeps/m68k/fpu/s_floor.c
+++ b/sysdeps/m68k/m680x0/fpu/s_floor.c
diff --git a/sysdeps/m68k/fpu/s_floorf.c b/sysdeps/m68k/m680x0/fpu/s_floorf.c
index f4f9b9a1d8..f4f9b9a1d8 100644
--- a/sysdeps/m68k/fpu/s_floorf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_floorf.c
diff --git a/sysdeps/m68k/fpu/s_floorl.c b/sysdeps/m68k/m680x0/fpu/s_floorl.c
index 2c1ffd7d2c..2c1ffd7d2c 100644
--- a/sysdeps/m68k/fpu/s_floorl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_floorl.c
diff --git a/sysdeps/m68k/fpu/s_fpclassifyl.c b/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
index a8cb099927..a8cb099927 100644
--- a/sysdeps/m68k/fpu/s_fpclassifyl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
diff --git a/sysdeps/m68k/fpu/s_frexp.c b/sysdeps/m68k/m680x0/fpu/s_frexp.c
index b06141283c..b06141283c 100644
--- a/sysdeps/m68k/fpu/s_frexp.c
+++ b/sysdeps/m68k/m680x0/fpu/s_frexp.c
diff --git a/sysdeps/m68k/fpu/s_frexpf.c b/sysdeps/m68k/m680x0/fpu/s_frexpf.c
index 893b6ad3cf..893b6ad3cf 100644
--- a/sysdeps/m68k/fpu/s_frexpf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_frexpf.c
diff --git a/sysdeps/m68k/fpu/s_frexpl.c b/sysdeps/m68k/m680x0/fpu/s_frexpl.c
index f9a5315265..f9a5315265 100644
--- a/sysdeps/m68k/fpu/s_frexpl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_frexpl.c
diff --git a/sysdeps/m68k/fpu/s_ilogb.c b/sysdeps/m68k/m680x0/fpu/s_ilogb.c
index ee1e3975f0..ee1e3975f0 100644
--- a/sysdeps/m68k/fpu/s_ilogb.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ilogb.c
diff --git a/sysdeps/m68k/fpu/s_ilogbf.c b/sysdeps/m68k/m680x0/fpu/s_ilogbf.c
index 4031c42ff7..4031c42ff7 100644
--- a/sysdeps/m68k/fpu/s_ilogbf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ilogbf.c
diff --git a/sysdeps/m68k/fpu/s_ilogbl.c b/sysdeps/m68k/m680x0/fpu/s_ilogbl.c
index 9c55a115e0..9c55a115e0 100644
--- a/sysdeps/m68k/fpu/s_ilogbl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ilogbl.c
diff --git a/sysdeps/m68k/fpu/s_isinf.c b/sysdeps/m68k/m680x0/fpu/s_isinf.c
index 5fb43ea2a0..5fb43ea2a0 100644
--- a/sysdeps/m68k/fpu/s_isinf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_isinf.c
diff --git a/sysdeps/m68k/fpu/s_isinff.c b/sysdeps/m68k/m680x0/fpu/s_isinff.c
index ebf4f2ae96..ebf4f2ae96 100644
--- a/sysdeps/m68k/fpu/s_isinff.c
+++ b/sysdeps/m68k/m680x0/fpu/s_isinff.c
diff --git a/sysdeps/m68k/fpu/s_isinfl.c b/sysdeps/m68k/m680x0/fpu/s_isinfl.c
index 963725ad77..963725ad77 100644
--- a/sysdeps/m68k/fpu/s_isinfl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_isinfl.c
diff --git a/sysdeps/m68k/fpu/s_isnan.c b/sysdeps/m68k/m680x0/fpu/s_isnan.c
index 151d6dc6b4..151d6dc6b4 100644
--- a/sysdeps/m68k/fpu/s_isnan.c
+++ b/sysdeps/m68k/m680x0/fpu/s_isnan.c
diff --git a/sysdeps/m68k/fpu/s_isnanf.c b/sysdeps/m68k/m680x0/fpu/s_isnanf.c
index 667bca7235..667bca7235 100644
--- a/sysdeps/m68k/fpu/s_isnanf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_isnanf.c
diff --git a/sysdeps/m68k/fpu/s_isnanl.c b/sysdeps/m68k/m680x0/fpu/s_isnanl.c
index bbacb64f11..bbacb64f11 100644
--- a/sysdeps/m68k/fpu/s_isnanl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_isnanl.c
diff --git a/sysdeps/m68k/fpu/s_llrint.c b/sysdeps/m68k/m680x0/fpu/s_llrint.c
index 8f2442982a..8f2442982a 100644
--- a/sysdeps/m68k/fpu/s_llrint.c
+++ b/sysdeps/m68k/m680x0/fpu/s_llrint.c
diff --git a/sysdeps/m68k/fpu/s_llrintf.c b/sysdeps/m68k/m680x0/fpu/s_llrintf.c
index bd573b2579..bd573b2579 100644
--- a/sysdeps/m68k/fpu/s_llrintf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_llrintf.c
diff --git a/sysdeps/m68k/fpu/s_llrintl.c b/sysdeps/m68k/m680x0/fpu/s_llrintl.c
index d749f3515f..d749f3515f 100644
--- a/sysdeps/m68k/fpu/s_llrintl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_llrintl.c
diff --git a/sysdeps/m68k/fpu/s_log1p.c b/sysdeps/m68k/m680x0/fpu/s_log1p.c
index 1840ced137..1840ced137 100644
--- a/sysdeps/m68k/fpu/s_log1p.c
+++ b/sysdeps/m68k/m680x0/fpu/s_log1p.c
diff --git a/sysdeps/m68k/fpu/s_log1pf.c b/sysdeps/m68k/m680x0/fpu/s_log1pf.c
index cb7235a071..cb7235a071 100644
--- a/sysdeps/m68k/fpu/s_log1pf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_log1pf.c
diff --git a/sysdeps/m68k/fpu/s_log1pl.c b/sysdeps/m68k/m680x0/fpu/s_log1pl.c
index 8dbef89095..8dbef89095 100644
--- a/sysdeps/m68k/fpu/s_log1pl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_log1pl.c
diff --git a/sysdeps/m68k/fpu/s_lrint.c b/sysdeps/m68k/m680x0/fpu/s_lrint.c
index 0a23f29eeb..0a23f29eeb 100644
--- a/sysdeps/m68k/fpu/s_lrint.c
+++ b/sysdeps/m68k/m680x0/fpu/s_lrint.c
diff --git a/sysdeps/m68k/fpu/s_lrintf.c b/sysdeps/m68k/m680x0/fpu/s_lrintf.c
index 44924cb82f..44924cb82f 100644
--- a/sysdeps/m68k/fpu/s_lrintf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_lrintf.c
diff --git a/sysdeps/m68k/fpu/s_lrintl.c b/sysdeps/m68k/m680x0/fpu/s_lrintl.c
index cd0bd23b8a..cd0bd23b8a 100644
--- a/sysdeps/m68k/fpu/s_lrintl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_lrintl.c
diff --git a/sysdeps/m68k/fpu/s_modf.c b/sysdeps/m68k/m680x0/fpu/s_modf.c
index 2f5a83dea7..2f5a83dea7 100644
--- a/sysdeps/m68k/fpu/s_modf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_modf.c
diff --git a/sysdeps/m68k/fpu/s_modff.c b/sysdeps/m68k/m680x0/fpu/s_modff.c
index 0c44d7c0ab..0c44d7c0ab 100644
--- a/sysdeps/m68k/fpu/s_modff.c
+++ b/sysdeps/m68k/m680x0/fpu/s_modff.c
diff --git a/sysdeps/m68k/fpu/s_modfl.c b/sysdeps/m68k/m680x0/fpu/s_modfl.c
index c7075b3ba9..c7075b3ba9 100644
--- a/sysdeps/m68k/fpu/s_modfl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_modfl.c
diff --git a/sysdeps/m68k/fpu/s_nearbyint.c b/sysdeps/m68k/m680x0/fpu/s_nearbyint.c
index b87f5e2160..b87f5e2160 100644
--- a/sysdeps/m68k/fpu/s_nearbyint.c
+++ b/sysdeps/m68k/m680x0/fpu/s_nearbyint.c
diff --git a/sysdeps/m68k/fpu/s_nearbyintf.c b/sysdeps/m68k/m680x0/fpu/s_nearbyintf.c
index 70d08ab44c..70d08ab44c 100644
--- a/sysdeps/m68k/fpu/s_nearbyintf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_nearbyintf.c
diff --git a/sysdeps/m68k/fpu/s_nearbyintl.c b/sysdeps/m68k/m680x0/fpu/s_nearbyintl.c
index 230cd7784c..230cd7784c 100644
--- a/sysdeps/m68k/fpu/s_nearbyintl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_nearbyintl.c
diff --git a/sysdeps/m68k/fpu/s_nextafterl.c b/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
index 70ab5a4784..70ab5a4784 100644
--- a/sysdeps/m68k/fpu/s_nextafterl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
diff --git a/sysdeps/m68k/fpu/s_remquo.c b/sysdeps/m68k/m680x0/fpu/s_remquo.c
index 5b65f85fbc..5b65f85fbc 100644
--- a/sysdeps/m68k/fpu/s_remquo.c
+++ b/sysdeps/m68k/m680x0/fpu/s_remquo.c
diff --git a/sysdeps/m68k/fpu/s_remquof.c b/sysdeps/m68k/m680x0/fpu/s_remquof.c
index 8a292fc26c..8a292fc26c 100644
--- a/sysdeps/m68k/fpu/s_remquof.c
+++ b/sysdeps/m68k/m680x0/fpu/s_remquof.c
diff --git a/sysdeps/m68k/fpu/s_remquol.c b/sysdeps/m68k/m680x0/fpu/s_remquol.c
index d236cfd1f9..d236cfd1f9 100644
--- a/sysdeps/m68k/fpu/s_remquol.c
+++ b/sysdeps/m68k/m680x0/fpu/s_remquol.c
diff --git a/sysdeps/m68k/fpu/s_rint.c b/sysdeps/m68k/m680x0/fpu/s_rint.c
index f0f18c7346..f0f18c7346 100644
--- a/sysdeps/m68k/fpu/s_rint.c
+++ b/sysdeps/m68k/m680x0/fpu/s_rint.c
diff --git a/sysdeps/m68k/fpu/s_rintf.c b/sysdeps/m68k/m680x0/fpu/s_rintf.c
index 4e00cab0fb..4e00cab0fb 100644
--- a/sysdeps/m68k/fpu/s_rintf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_rintf.c
diff --git a/sysdeps/m68k/fpu/s_rintl.c b/sysdeps/m68k/m680x0/fpu/s_rintl.c
index 305667b3a1..305667b3a1 100644
--- a/sysdeps/m68k/fpu/s_rintl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_rintl.c
diff --git a/sysdeps/m68k/fpu/s_scalbln.c b/sysdeps/m68k/m680x0/fpu/s_scalbln.c
index 1009713fbc..1009713fbc 100644
--- a/sysdeps/m68k/fpu/s_scalbln.c
+++ b/sysdeps/m68k/m680x0/fpu/s_scalbln.c
diff --git a/sysdeps/m68k/fpu/s_scalblnf.c b/sysdeps/m68k/m680x0/fpu/s_scalblnf.c
index 5e558c3540..5e558c3540 100644
--- a/sysdeps/m68k/fpu/s_scalblnf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_scalblnf.c
diff --git a/sysdeps/m68k/fpu/s_scalblnl.c b/sysdeps/m68k/m680x0/fpu/s_scalblnl.c
index cda2ec11c8..cda2ec11c8 100644
--- a/sysdeps/m68k/fpu/s_scalblnl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_scalblnl.c
diff --git a/sysdeps/m68k/fpu/s_scalbn.c b/sysdeps/m68k/m680x0/fpu/s_scalbn.c
index d76d94d946..d76d94d946 100644
--- a/sysdeps/m68k/fpu/s_scalbn.c
+++ b/sysdeps/m68k/m680x0/fpu/s_scalbn.c
diff --git a/sysdeps/m68k/fpu/s_scalbnf.c b/sysdeps/m68k/m680x0/fpu/s_scalbnf.c
index 547971836a..547971836a 100644
--- a/sysdeps/m68k/fpu/s_scalbnf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_scalbnf.c
diff --git a/sysdeps/m68k/fpu/s_scalbnl.c b/sysdeps/m68k/m680x0/fpu/s_scalbnl.c
index 874bafb04b..874bafb04b 100644
--- a/sysdeps/m68k/fpu/s_scalbnl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_scalbnl.c
diff --git a/sysdeps/m68k/fpu/s_significand.c b/sysdeps/m68k/m680x0/fpu/s_significand.c
index 34d4ea3d14..34d4ea3d14 100644
--- a/sysdeps/m68k/fpu/s_significand.c
+++ b/sysdeps/m68k/m680x0/fpu/s_significand.c
diff --git a/sysdeps/m68k/fpu/s_significandf.c b/sysdeps/m68k/m680x0/fpu/s_significandf.c
index 4e769ca317..4e769ca317 100644
--- a/sysdeps/m68k/fpu/s_significandf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_significandf.c
diff --git a/sysdeps/m68k/fpu/s_significandl.c b/sysdeps/m68k/m680x0/fpu/s_significandl.c
index 8c6fc7e610..8c6fc7e610 100644
--- a/sysdeps/m68k/fpu/s_significandl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_significandl.c
diff --git a/sysdeps/m68k/fpu/s_sin.c b/sysdeps/m68k/m680x0/fpu/s_sin.c
index 0d4abdbfe4..0d4abdbfe4 100644
--- a/sysdeps/m68k/fpu/s_sin.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sin.c
diff --git a/sysdeps/m68k/fpu/s_sincos.c b/sysdeps/m68k/m680x0/fpu/s_sincos.c
index 5df4a5a1c0..5df4a5a1c0 100644
--- a/sysdeps/m68k/fpu/s_sincos.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sincos.c
diff --git a/sysdeps/m68k/fpu/s_sincosf.c b/sysdeps/m68k/m680x0/fpu/s_sincosf.c
index 7ee2ec6600..7ee2ec6600 100644
--- a/sysdeps/m68k/fpu/s_sincosf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sincosf.c
diff --git a/sysdeps/m68k/fpu/s_sincosl.c b/sysdeps/m68k/m680x0/fpu/s_sincosl.c
index f998cc0977..f998cc0977 100644
--- a/sysdeps/m68k/fpu/s_sincosl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sincosl.c
diff --git a/sysdeps/m68k/fpu/s_sinf.c b/sysdeps/m68k/m680x0/fpu/s_sinf.c
index 9b23d4823f..9b23d4823f 100644
--- a/sysdeps/m68k/fpu/s_sinf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sinf.c
diff --git a/sysdeps/m68k/fpu/s_sinl.c b/sysdeps/m68k/m680x0/fpu/s_sinl.c
index 9ac532cb47..9ac532cb47 100644
--- a/sysdeps/m68k/fpu/s_sinl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sinl.c
diff --git a/sysdeps/m68k/fpu/s_tan.c b/sysdeps/m68k/m680x0/fpu/s_tan.c
index ca7fb0e6dc..ca7fb0e6dc 100644
--- a/sysdeps/m68k/fpu/s_tan.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tan.c
diff --git a/sysdeps/m68k/fpu/s_tanf.c b/sysdeps/m68k/m680x0/fpu/s_tanf.c
index 95fe9c71a5..95fe9c71a5 100644
--- a/sysdeps/m68k/fpu/s_tanf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tanf.c
diff --git a/sysdeps/m68k/fpu/s_tanh.c b/sysdeps/m68k/m680x0/fpu/s_tanh.c
index ac2e7dbb79..ac2e7dbb79 100644
--- a/sysdeps/m68k/fpu/s_tanh.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tanh.c
diff --git a/sysdeps/m68k/fpu/s_tanhf.c b/sysdeps/m68k/m680x0/fpu/s_tanhf.c
index 1addaae4ff..1addaae4ff 100644
--- a/sysdeps/m68k/fpu/s_tanhf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tanhf.c
diff --git a/sysdeps/m68k/fpu/s_tanhl.c b/sysdeps/m68k/m680x0/fpu/s_tanhl.c
index 6e997911f2..6e997911f2 100644
--- a/sysdeps/m68k/fpu/s_tanhl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tanhl.c
diff --git a/sysdeps/m68k/fpu/s_tanl.c b/sysdeps/m68k/m680x0/fpu/s_tanl.c
index 64fcb54406..64fcb54406 100644
--- a/sysdeps/m68k/fpu/s_tanl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tanl.c
diff --git a/sysdeps/m68k/fpu/s_trunc.c b/sysdeps/m68k/m680x0/fpu/s_trunc.c
index 96f29a776c..96f29a776c 100644
--- a/sysdeps/m68k/fpu/s_trunc.c
+++ b/sysdeps/m68k/m680x0/fpu/s_trunc.c
diff --git a/sysdeps/m68k/fpu/s_truncf.c b/sysdeps/m68k/m680x0/fpu/s_truncf.c
index 44dca748ca..44dca748ca 100644
--- a/sysdeps/m68k/fpu/s_truncf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_truncf.c
diff --git a/sysdeps/m68k/fpu/s_truncl.c b/sysdeps/m68k/m680x0/fpu/s_truncl.c
index 8d35777aed..8d35777aed 100644
--- a/sysdeps/m68k/fpu/s_truncl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_truncl.c
diff --git a/sysdeps/m68k/fpu/sincos32.c b/sysdeps/m68k/m680x0/fpu/sincos32.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/sincos32.c
+++ b/sysdeps/m68k/m680x0/fpu/sincos32.c
diff --git a/sysdeps/m68k/fpu/slowexp.c b/sysdeps/m68k/m680x0/fpu/slowexp.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/slowexp.c
+++ b/sysdeps/m68k/m680x0/fpu/slowexp.c
diff --git a/sysdeps/m68k/fpu/slowpow.c b/sysdeps/m68k/m680x0/fpu/slowpow.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/m68k/fpu/slowpow.c
+++ b/sysdeps/m68k/m680x0/fpu/slowpow.c
diff --git a/sysdeps/m68k/fpu/switch/68881-sw.h b/sysdeps/m68k/m680x0/fpu/switch/68881-sw.h
index c5a0f71fa6..c5a0f71fa6 100644
--- a/sysdeps/m68k/fpu/switch/68881-sw.h
+++ b/sysdeps/m68k/m680x0/fpu/switch/68881-sw.h
diff --git a/sysdeps/m68k/fpu/switch/Makefile b/sysdeps/m68k/m680x0/fpu/switch/Makefile
index c04107163c..c04107163c 100644
--- a/sysdeps/m68k/fpu/switch/Makefile
+++ b/sysdeps/m68k/m680x0/fpu/switch/Makefile
diff --git a/sysdeps/m68k/fpu/switch/bits/mathinline.h b/sysdeps/m68k/m680x0/fpu/switch/bits/mathinline.h
index c0f6966981..c0f6966981 100644
--- a/sysdeps/m68k/fpu/switch/bits/mathinline.h
+++ b/sysdeps/m68k/m680x0/fpu/switch/bits/mathinline.h
diff --git a/sysdeps/m68k/fpu/switch/switch.c b/sysdeps/m68k/m680x0/fpu/switch/switch.c
index e0558176dc..e0558176dc 100644
--- a/sysdeps/m68k/fpu/switch/switch.c
+++ b/sysdeps/m68k/m680x0/fpu/switch/switch.c
diff --git a/sysdeps/m68k/fpu/t_exp.c b/sysdeps/m68k/m680x0/fpu/t_exp.c
index fd37963b05..fd37963b05 100644
--- a/sysdeps/m68k/fpu/t_exp.c
+++ b/sysdeps/m68k/m680x0/fpu/t_exp.c
diff --git a/sysdeps/m68k/lshift.S b/sysdeps/m68k/m680x0/lshift.S
index 434b344bd4..434b344bd4 100644
--- a/sysdeps/m68k/lshift.S
+++ b/sysdeps/m68k/m680x0/lshift.S
diff --git a/sysdeps/m68k/m68020/Makefile b/sysdeps/m68k/m680x0/m68020/Makefile
index b17635467d..b17635467d 100644
--- a/sysdeps/m68k/m68020/Makefile
+++ b/sysdeps/m68k/m680x0/m68020/Makefile
diff --git a/sysdeps/m68k/m68020/addmul_1.S b/sysdeps/m68k/m680x0/m68020/addmul_1.S
index 05d1d8a804..05d1d8a804 100644
--- a/sysdeps/m68k/m68020/addmul_1.S
+++ b/sysdeps/m68k/m680x0/m68020/addmul_1.S
diff --git a/sysdeps/m68k/m68020/bits/atomic.h b/sysdeps/m68k/m680x0/m68020/bits/atomic.h
index 6b6db71465..6b6db71465 100644
--- a/sysdeps/m68k/m68020/bits/atomic.h
+++ b/sysdeps/m68k/m680x0/m68020/bits/atomic.h
diff --git a/sysdeps/m68k/m68020/bits/string.h b/sysdeps/m68k/m680x0/m68020/bits/string.h
index 84be224b73..84be224b73 100644
--- a/sysdeps/m68k/m68020/bits/string.h
+++ b/sysdeps/m68k/m680x0/m68020/bits/string.h
diff --git a/sysdeps/m68k/m68020/mul_1.S b/sysdeps/m68k/m680x0/m68020/mul_1.S
index f3e450ed93..f3e450ed93 100644
--- a/sysdeps/m68k/m68020/mul_1.S
+++ b/sysdeps/m68k/m680x0/m68020/mul_1.S
diff --git a/sysdeps/m68k/m68020/submul_1.S b/sysdeps/m68k/m680x0/m68020/submul_1.S
index 7522046b43..7522046b43 100644
--- a/sysdeps/m68k/m68020/submul_1.S
+++ b/sysdeps/m68k/m680x0/m68020/submul_1.S
diff --git a/sysdeps/m68k/m68020/wordcopy.S b/sysdeps/m68k/m680x0/m68020/wordcopy.S
index 4fb1a4518f..4fb1a4518f 100644
--- a/sysdeps/m68k/m68020/wordcopy.S
+++ b/sysdeps/m68k/m680x0/m68020/wordcopy.S
diff --git a/sysdeps/m68k/printf_fphex.c b/sysdeps/m68k/m680x0/printf_fphex.c
index d021a090ab..d021a090ab 100644
--- a/sysdeps/m68k/printf_fphex.c
+++ b/sysdeps/m68k/m680x0/printf_fphex.c
diff --git a/sysdeps/m68k/rshift.S b/sysdeps/m68k/m680x0/rshift.S
index 5e6abceb97..5e6abceb97 100644
--- a/sysdeps/m68k/rshift.S
+++ b/sysdeps/m68k/m680x0/rshift.S
diff --git a/sysdeps/m68k/s_isinfl.c b/sysdeps/m68k/m680x0/s_isinfl.c
index 2502039087..2502039087 100644
--- a/sysdeps/m68k/s_isinfl.c
+++ b/sysdeps/m68k/m680x0/s_isinfl.c
diff --git a/sysdeps/m68k/s_isnanl.c b/sysdeps/m68k/m680x0/s_isnanl.c
index 999746f29c..999746f29c 100644
--- a/sysdeps/m68k/s_isnanl.c
+++ b/sysdeps/m68k/m680x0/s_isnanl.c
diff --git a/sysdeps/m68k/strtold_l.c b/sysdeps/m68k/m680x0/strtold_l.c
index 481d9924c2..481d9924c2 100644
--- a/sysdeps/m68k/strtold_l.c
+++ b/sysdeps/m68k/m680x0/strtold_l.c
diff --git a/sysdeps/m68k/sub_n.S b/sysdeps/m68k/m680x0/sub_n.S
index 5833dd2719..5833dd2719 100644
--- a/sysdeps/m68k/sub_n.S
+++ b/sysdeps/m68k/m680x0/sub_n.S
diff --git a/sysdeps/m68k/memchr.S b/sysdeps/m68k/memchr.S
index fab65a9aea..77e86a32bd 100644
--- a/sysdeps/m68k/memchr.S
+++ b/sysdeps/m68k/memchr.S
@@ -26,7 +26,13 @@
 	TEXT
 ENTRY(__memchr)
 	/* Save the callee-saved registers we use.  */
+#ifdef __mcoldfire__
+	movel	R(d2),MEM_PREDEC(sp)
+	movel	R(d3),MEM_PREDEC(sp)
+	movel	R(d4),MEM_PREDEC(sp)
+#else
 	moveml	R(d2)-R(d4),MEM_PREDEC(sp)
+#endif
 
 	/* Get string pointer, character and length.  */
 	movel	MEM_DISP(sp,16),R(a0)
@@ -34,9 +40,15 @@ ENTRY(__memchr)
 	movel	MEM_DISP(sp,24),R(d4)
 
 	/* Check if at least four bytes left to search.  */
+#ifdef __mcoldfire__
+	subql	#4,R(d4)
+	bcs	L(L6)
+	addql	#4,R(d4)
+#else
 	moveql	#4,R(d1)
 	cmpl	R(d1),R(d4)
 	bcs	L(L6)
+#endif
 
 	/* Distribute the character to all bytes of a longword.  */
 	movel	R(d0),R(d1)
@@ -49,7 +61,11 @@ ENTRY(__memchr)
 	/* First search for the character one byte at a time until the
 	   pointer is aligned to a longword boundary.  */
 	movel	R(a0),R(d1)
+#ifdef __mcoldfire__
+	andl	#3,R(d1)
+#else
 	andw	#3,R(d1)
+#endif
 	beq	L(L1)
 	cmpb	MEM(a0),R(d0)
 	beq	L(L9)
@@ -57,8 +73,11 @@ ENTRY(__memchr)
 	subql	#1,R(d4)
 	beq	L(L7)
 
-	movel	R(a0),R(d1)
-	andw	#3,R(d1)
+#ifdef __mcoldfire__
+	subql	#3,R(d1)
+#else
+	subqw	#3,R(d1)
+#endif
 	beq	L(L1)
 	cmpb	MEM(a0),R(d0)
 	beq	L(L9)
@@ -66,8 +85,11 @@ ENTRY(__memchr)
 	subql	#1,R(d4)
 	beq	L(L7)
 
-	movel	R(a0),R(d1)
-	andw	#3,R(d1)
+#ifdef __mcoldfire__
+	addql	#1,R(d1)
+#else
+	addqw	#1,R(d1)
+#endif
 	beq	L(L1)
 	cmpb	MEM(a0),R(d0)
 	beq	L(L9)
@@ -177,19 +199,31 @@ L(L2:)
 
 L(L6:)
 	/* Search one byte at a time in the remaining less than 4 bytes.  */
+#ifdef __mcoldfire__
+	addql	#4,R(d4)
+#else
 	andw	#3,R(d4)
+#endif
 	beq	L(L7)
 	cmpb	MEM(a0),R(d0)
 	beq	L(L9)
 	addql	#1,R(a0)
 
+#ifdef __mcoldfire__
+	subql	#1,R(d4)
+#else
 	subqw	#1,R(d4)
+#endif
 	beq	L(L7)
 	cmpb	MEM(a0),R(d0)
 	beq	L(L9)
 	addql	#1,R(a0)
 
+#ifdef __mcoldfire__
+	subql	#1,R(d4)
+#else
 	subqw	#1,R(d4)
+#endif
 	beq	L(L7)
 	cmpb	MEM(a0),R(d0)
 	beq	L(L9)
@@ -198,7 +232,13 @@ L(L7:)
 	/* Return NULL.  */
 	clrl	R(d0)
 	movel	R(d0),R(a0)
+#ifdef __mcoldfire__
+	movel	MEM_POSTINC(sp),R(d4)
+	movel	MEM_POSTINC(sp),R(d3)
+	movel	MEM_POSTINC(sp),R(d2)
+#else
 	moveml	MEM_POSTINC(sp),R(d2)-R(d4)
+#endif
 	rts
 
 L(L8:)
@@ -221,7 +261,13 @@ L(L8:)
 	/* Otherwise the fourth byte must equal C.  */
 L(L9:)
 	movel	R(a0),R(d0)
+#ifdef __mcoldfire__
+	movel	MEM_POSTINC(sp),R(d4)
+	movel	MEM_POSTINC(sp),R(d3)
+	movel	MEM_POSTINC(sp),R(d2)
+#else
 	moveml	MEM_POSTINC(sp),R(d2)-R(d4)
+#endif
 	rts
 END(__memchr)
 
diff --git a/sysdeps/m68k/preconfigure b/sysdeps/m68k/preconfigure
index 35dcea4be1..94fc1aabc2 100644
--- a/sysdeps/m68k/preconfigure
+++ b/sysdeps/m68k/preconfigure
@@ -1,6 +1,17 @@
 # This fragment canonicalizes the machine names for m68k variants.
 
 case "$machine" in
-m680?0)		base_machine=m68k machine=m68k/$machine ;;
-m68k)		base_machine=m68k machine=m68k/m68020 ;;
+m680?0)		base_machine=m68k machine=m68k/m680x0/$machine ;;
+m68k)		variant=`(echo "#ifdef __mcoldfire__"
+			  echo "coldfire"
+			  echo "#else"
+			  echo "m680x0/m68020"
+			  echo "#endif") |
+			 $CC $CFLAGS $CPPFLAGS -E - |
+			 grep '^[a-z]'`
+		if test -z "$variant"; then
+		  echo >&2 "Cannot determine m68k processor variant"
+		  exit 1
+		fi
+		base_machine=m68k machine=m68k/$variant ;;
 esac
diff --git a/sysdeps/m68k/rawmemchr.S b/sysdeps/m68k/rawmemchr.S
index acd8f76e44..97735f669d 100644
--- a/sysdeps/m68k/rawmemchr.S
+++ b/sysdeps/m68k/rawmemchr.S
@@ -43,21 +43,31 @@ ENTRY(__rawmemchr)
 	/* First search for the character one byte at a time until the
 	   pointer is aligned to a longword boundary.  */
 	movel	R(a0),R(d1)
+#ifdef __mcoldfire__
+	andl	#3,R(d1)
+#else
 	andw	#3,R(d1)
+#endif
 	beq	L(L1)
 	cmpb	MEM(a0),R(d0)
 	beq	L(L9)
 	addql	#1,R(a0)
 
-	movel	R(a0),R(d1)
-	andw	#3,R(d1)
+#ifdef __mcoldfire__
+	subql	#3,R(d1)
+#else
+	subqw	#3,R(d1)
+#endif
 	beq	L(L1)
 	cmpb	MEM(a0),R(d0)
 	beq	L(L9)
 	addql	#1,R(a0)
 
-	movel	R(a0),R(d1)
-	andw	#3,R(d1)
+#ifdef __mcoldfire__
+	addql	#1,R(d1)
+#else
+	addqw	#1,R(d1)
+#endif
 	beq	L(L1)
 	cmpb	MEM(a0),R(d0)
 	beq	L(L9)
diff --git a/sysdeps/m68k/setjmp.c b/sysdeps/m68k/setjmp.c
index 8a6c3f9a0b..e2ba0e700d 100644
--- a/sysdeps/m68k/setjmp.c
+++ b/sysdeps/m68k/setjmp.c
@@ -53,11 +53,14 @@ __sigsetjmp (jmp_buf env, int savemask)
   /* Save floating-point (68881) registers FP0 through FP7.  */
   asm volatile ("fmovem%.x %/fp0-%/fp7, %0"
 		: : "m" (env[0].__jmpbuf[0].__fpregs[0]));
+#elif defined (__mcffpu__)
+  asm volatile ("fmovem %/fp0-%/fp7, %0"
+		: : "m" (env[0].__jmpbuf[0].__fpregs[0]));
 #endif
 
   /* Save the signal mask if requested.  */
   return __sigjmp_save (env, savemask);
 }
 #if !defined BSD_SETJMP && !defined BSD__SETJMP
-hidden_def (__sigsetjmp)
+libc_hidden_def (__sigsetjmp)
 #endif
diff --git a/sysdeps/m68k/strchr.S b/sysdeps/m68k/strchr.S
index 04626ffd64..2e1e3249f6 100644
--- a/sysdeps/m68k/strchr.S
+++ b/sysdeps/m68k/strchr.S
@@ -43,32 +43,42 @@ ENTRY(strchr)
 	/* First search for the character one byte at a time until the
 	   pointer is aligned to a longword boundary.  */
 	movel	R(a0),R(d1)
+#ifdef __mcoldfire__
+	andl	#3,R(d1)
+#else
 	andw	#3,R(d1)
+#endif
 	beq	L(L1)
-	moveb	MEM(a0),R(d1)
-	cmpb	R(d0),R(d1)
+	moveb	MEM(a0),R(d2)
+	cmpb	R(d0),R(d2)
 	beq	L(L9)
-	tstb	R(d1)
+	tstb	R(d2)
 	beq	L(L3)
 	addql	#1,R(a0)
 
-	movel	R(a0),R(d1)
-	andw	#3,R(d1)
+#ifdef __mcoldfire__
+	subql	#3,R(d1)
+#else
+	subqw	#3,R(d1)
+#endif
 	beq	L(L1)
-	moveb	MEM(a0),R(d1)
-	cmpb	R(d0),R(d1)
+	moveb	MEM(a0),R(d2)
+	cmpb	R(d0),R(d2)
 	beq	L(L9)
-	tstb	R(d1)
+	tstb	R(d2)
 	beq	L(L3)
 	addql	#1,R(a0)
 
-	movel	R(a0),R(d1)
-	andw	#3,R(d1)
+#ifdef __mcoldfire__
+	addql	#1,R(d1)
+#else
+	addqw	#1,R(d1)
+#endif
 	beq	L(L1)
-	moveb	MEM(a0),R(d1)
-	cmpb	R(d0),R(d1)
+	moveb	MEM(a0),R(d2)
+	cmpb	R(d0),R(d2)
 	beq	L(L9)
-	tstb	R(d1)
+	tstb	R(d2)
 	beq	L(L3)
 	addql	#1,R(a0)
 
diff --git a/sysdeps/m68k/strchrnul.S b/sysdeps/m68k/strchrnul.S
index 3fee2b236c..9d13ec16a0 100644
--- a/sysdeps/m68k/strchrnul.S
+++ b/sysdeps/m68k/strchrnul.S
@@ -44,32 +44,42 @@ ENTRY(__strchrnul)
 	/* First search for the character one byte at a time until the
 	   pointer is aligned to a longword boundary.  */
 	movel	R(a0),R(d1)
+#ifdef __mcoldfire__
+	andl	#3,R(d1)
+#else
 	andw	#3,R(d1)
+#endif
 	beq	L(L1)
-	moveb	MEM(a0),R(d1)
-	cmpb	R(d0),R(d1)
+	moveb	MEM(a0),R(d2)
+	cmpb	R(d0),R(d2)
 	beq	L(L9)
-	tstb	R(d1)
+	tstb	R(d2)
 	beq	L(L9)
 	addql	#1,R(a0)
 
-	movel	R(a0),R(d1)
-	andw	#3,R(d1)
+#ifdef __mcoldfire__
+	subql	#3,R(d1)
+#else
+	subqw	#3,R(d1)
+#endif
 	beq	L(L1)
-	moveb	MEM(a0),R(d1)
-	cmpb	R(d0),R(d1)
+	moveb	MEM(a0),R(d2)
+	cmpb	R(d0),R(d2)
 	beq	L(L9)
-	tstb	R(d1)
+	tstb	R(d2)
 	beq	L(L9)
 	addql	#1,R(a0)
 
-	movel	R(a0),R(d1)
-	andw	#3,R(d1)
+#ifdef __mcoldfire__
+	addql	#1,R(d1)
+#else
+	addqw	#1,R(d1)
+#endif
 	beq	L(L1)
-	moveb	MEM(a0),R(d1)
-	cmpb	R(d0),R(d1)
+	moveb	MEM(a0),R(d2)
+	cmpb	R(d0),R(d2)
 	beq	L(L9)
-	tstb	R(d1)
+	tstb	R(d2)
 	beq	L(L9)
 	addql	#1,R(a0)
 
diff --git a/sysdeps/m68k/sysdep.h b/sysdeps/m68k/sysdep.h
index f492ff617c..3698628c30 100644
--- a/sysdeps/m68k/sysdep.h
+++ b/sysdeps/m68k/sysdep.h
@@ -97,4 +97,26 @@
 #  define JUMPTARGET(name)	name
 # endif
 
+/* Perform operation OP with PC-relative SRC as the first operand and
+   DST as the second.  TMP is available as a temporary if needed.  */
+#ifdef __mcoldfire__
+#define PCREL_OP(OP, SRC, DST, TMP) \
+  move.l &SRC - ., TMP; OP (-8, %pc, TMP), DST
+#else
+#define PCREL_OP(OP, SRC, DST, TMP) \
+  OP SRC(%pc), DST
+#endif
+
+#else
+
+/* As above, but PC is the spelling of the PC register.  We need this
+   so that the macro can be used in both normal and extended asms.  */
+#ifdef __mcoldfire__
+#define PCREL_OP(OP, SRC, DST, TMP, PC) \
+  "move.l #" SRC " - ., " TMP "\n\t" OP " (-8, " PC ", " TMP "), " DST
+#else
+#define PCREL_OP(OP, SRC, DST, TMP, PC) \
+  OP " " SRC "(" PC "), " DST
+#endif
+
 #endif	/* __ASSEMBLER__ */
diff --git a/sysdeps/m68k/tst-audit.h b/sysdeps/m68k/tst-audit.h
new file mode 100644
index 0000000000..5254ab3b12
--- /dev/null
+++ b/sysdeps/m68k/tst-audit.h
@@ -0,0 +1,25 @@
+/* Definitions for testing PLT entry/exit auditing.  m68k version.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#define pltenter la_m68k_gnu_pltenter
+#define pltexit la_m68k_gnu_pltexit
+#define La_regs La_m68k_regs
+#define La_retval La_m68k_retval
+#define int_retval lrv_d0
diff --git a/sysdeps/m68k/wcpcpy.c b/sysdeps/m68k/wcpcpy.c
new file mode 100644
index 0000000000..c838af1fd5
--- /dev/null
+++ b/sysdeps/m68k/wcpcpy.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1996, 1997, 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* The generic version of this file assumes that __alignof__(wchar_t) ==
+   sizeof (wchar_t).  We therefore use this port-specific implementation
+   instead.  */
+#include <wchar.h>
+
+/* Copy SRC to DEST, returning the address of the terminating L'\0' in
+   DEST.  */
+wchar_t *
+__wcpcpy (wchar_t *dest, const wchar_t *src)
+{
+  do
+    ;
+  while ((*dest++ = *src++));
+
+  return dest - 1;
+}
+
+weak_alias (__wcpcpy, wcpcpy)
diff --git a/sysdeps/m68k/wcpcpy_chk.c b/sysdeps/m68k/wcpcpy_chk.c
new file mode 100644
index 0000000000..525c1d5baa
--- /dev/null
+++ b/sysdeps/m68k/wcpcpy_chk.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996, 1997, 2005, 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* The generic version of this file assumes that __alignof__(wchar_t) ==
+   sizeof (wchar_t).  We therefore use this port-specific implementation
+   instead.  */
+#include <wchar.h>
+
+/* Copy SRC to DEST, returning the address of the terminating L'\0' in
+   DEST.  Check for overflows.  */
+wchar_t *
+__wcpcpy_chk (wchar_t *dest, const wchar_t *src, size_t destlen)
+{
+  do
+    if (destlen-- == 0)
+      __chk_fail ();
+  while ((*dest++ = *src++));
+
+  return dest - 1;
+}
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/sigcontext.h b/sysdeps/unix/sysv/linux/m68k/bits/sigcontext.h
new file mode 100644
index 0000000000..8ad0c96563
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/bits/sigcontext.h
@@ -0,0 +1,62 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
+#endif
+
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
+struct sigcontext {
+  unsigned long sc_mask;
+  unsigned long sc_usp;
+  unsigned long sc_d0;
+  unsigned long sc_d1;
+#ifdef __mcoldfire__
+  unsigned long sc_d2;
+  unsigned long sc_d3;
+  unsigned long sc_d4;
+  unsigned long sc_d5;
+  unsigned long sc_d6;
+  unsigned long sc_d7;
+#endif
+  unsigned long sc_a0;
+  unsigned long sc_a1;
+#ifdef __mcoldfire__
+  unsigned long sc_a2;
+  unsigned long sc_a3;
+  unsigned long sc_a4;
+  unsigned long sc_a5;
+  unsigned long sc_a6;
+#endif
+  unsigned short sc_sr;
+  unsigned long sc_pc;
+  unsigned short sc_formatvec;
+#ifdef __mcoldfire__
+  unsigned long sc_fpregs[8][2];
+  unsigned long sc_fpcntl[3];
+  unsigned char sc_fpstate[16];
+#else
+  unsigned long sc_fpregs[2*3];
+  unsigned long sc_fpcntl[3];
+  unsigned char sc_fpstate[216];
+#endif
+};
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/siginfo.h b/sysdeps/unix/sysv/linux/m68k/bits/siginfo.h
new file mode 100644
index 0000000000..1ded1c2a4a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/bits/siginfo.h
@@ -0,0 +1,316 @@
+/* siginfo_t, sigevent and constants.  m68k linux version.
+   Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#if !defined _SIGNAL_H && !defined __need_siginfo_t \
+    && !defined __need_sigevent_t
+# error "Never include this file directly.  Use <signal.h> instead"
+#endif
+
+#include <bits/wordsize.h>
+
+#if (!defined __have_sigval_t \
+     && (defined _SIGNAL_H || defined __need_siginfo_t \
+	 || defined __need_sigevent_t))
+# define __have_sigval_t	1
+
+/* Type for data associated with a signal.  */
+typedef union sigval
+  {
+    int sival_int;
+    void *sival_ptr;
+  } sigval_t;
+#endif
+
+#if (!defined __have_siginfo_t \
+     && (defined _SIGNAL_H || defined __need_siginfo_t))
+# define __have_siginfo_t	1
+
+# define __SI_MAX_SIZE     128
+# if __WORDSIZE == 64
+#  define __SI_PAD_SIZE     ((__SI_MAX_SIZE / sizeof (int)) - 4)
+# else
+#  define __SI_PAD_SIZE     ((__SI_MAX_SIZE / sizeof (int)) - 3)
+# endif
+
+typedef struct siginfo
+  {
+    int si_signo;		/* Signal number.  */
+    int si_errno;		/* If non-zero, an errno value associated with
+				   this signal, as defined in <errno.h>.  */
+    int si_code;		/* Signal code.  */
+
+    union
+      {
+	int _pad[__SI_PAD_SIZE];
+
+	 /* kill().  */
+	struct
+	  {
+	    __pid_t si_pid;	/* Sending process ID.  */
+	    unsigned short __pad; /* 16-bit version of si_uid.  */
+	    __uid_t si_uid;	/* Real user ID of sending process.  */
+	  } _kill;
+
+	/* POSIX.1b timers.  */
+	struct
+	  {
+	    int si_tid;		/* Timer ID.  */
+	    int si_overrun;	/* Overrun count.  */
+	    sigval_t si_sigval;	/* Signal value.  */
+	  } _timer;
+
+	/* POSIX.1b signals.  */
+	struct
+	  {
+	    __pid_t si_pid;	/* Sending process ID.  */
+	    unsigned short __pad; /* 16-bit version of si_uid.  */
+	    sigval_t si_sigval;	/* Signal value.  */
+	    __uid_t si_uid;	/* Real user ID of sending process.  */
+	  } _rt;
+
+	/* SIGCHLD.  */
+	struct
+	  {
+	    __pid_t si_pid;	/* Which child.  */
+	    unsigned short __pad; /* 16-bit version of si_uid.  */
+	    int si_status;	/* Exit value or signal.  */
+	    __clock_t si_utime;
+	    __clock_t si_stime;
+	    __uid_t si_uid;	/* Real user ID of sending process.  */
+	  } _sigchld;
+
+	/* SIGILL, SIGFPE, SIGSEGV, SIGBUS.  */
+	struct
+	  {
+	    void *si_addr;	/* Faulting insn/memory ref.  */
+	  } _sigfault;
+
+	/* SIGPOLL.  */
+	struct
+	  {
+	    long int si_band;	/* Band event for SIGPOLL.  */
+	    int si_fd;
+	  } _sigpoll;
+      } _sifields;
+  } siginfo_t;
+
+
+/* X/Open requires some more fields with fixed names.  */
+# define si_pid		_sifields._kill.si_pid
+# define si_uid		_sifields._kill.si_uid
+# define si_timerid	_sifields._timer.si_tid
+# define si_overrun	_sifields._timer.si_overrun
+# define si_status	_sifields._sigchld.si_status
+# define si_utime	_sifields._sigchld.si_utime
+# define si_stime	_sifields._sigchld.si_stime
+# define si_value	_sifields._rt.si_sigval
+# define si_int		_sifields._rt.si_sigval.sival_int
+# define si_ptr		_sifields._rt.si_sigval.sival_ptr
+# define si_addr	_sifields._sigfault.si_addr
+# define si_band	_sifields._sigpoll.si_band
+# define si_fd		_sifields._sigpoll.si_fd
+
+
+/* Values for `si_code'.  Positive values are reserved for kernel-generated
+   signals.  */
+enum
+{
+  SI_ASYNCNL = -60,		/* Sent by asynch name lookup completion.  */
+# define SI_ASYNCNL	SI_ASYNCNL
+  SI_TKILL = -6,		/* Sent by tkill.  */
+# define SI_TKILL	SI_TKILL
+  SI_SIGIO,			/* Sent by queued SIGIO. */
+# define SI_SIGIO	SI_SIGIO
+  SI_ASYNCIO,			/* Sent by AIO completion.  */
+# define SI_ASYNCIO	SI_ASYNCIO
+  SI_MESGQ,			/* Sent by real time mesq state change.  */
+# define SI_MESGQ	SI_MESGQ
+  SI_TIMER,			/* Sent by timer expiration.  */
+# define SI_TIMER	SI_TIMER
+  SI_QUEUE,			/* Sent by sigqueue.  */
+# define SI_QUEUE	SI_QUEUE
+  SI_USER,			/* Sent by kill, sigsend, raise.  */
+# define SI_USER	SI_USER
+  SI_KERNEL = 0x80		/* Send by kernel.  */
+#define SI_KERNEL	SI_KERNEL
+};
+
+
+/* `si_code' values for SIGILL signal.  */
+enum
+{
+  ILL_ILLOPC = 1,		/* Illegal opcode.  */
+# define ILL_ILLOPC	ILL_ILLOPC
+  ILL_ILLOPN,			/* Illegal operand.  */
+# define ILL_ILLOPN	ILL_ILLOPN
+  ILL_ILLADR,			/* Illegal addressing mode.  */
+# define ILL_ILLADR	ILL_ILLADR
+  ILL_ILLTRP,			/* Illegal trap. */
+# define ILL_ILLTRP	ILL_ILLTRP
+  ILL_PRVOPC,			/* Privileged opcode.  */
+# define ILL_PRVOPC	ILL_PRVOPC
+  ILL_PRVREG,			/* Privileged register.  */
+# define ILL_PRVREG	ILL_PRVREG
+  ILL_COPROC,			/* Coprocessor error.  */
+# define ILL_COPROC	ILL_COPROC
+  ILL_BADSTK			/* Internal stack error.  */
+# define ILL_BADSTK	ILL_BADSTK
+};
+
+/* `si_code' values for SIGFPE signal.  */
+enum
+{
+  FPE_INTDIV = 1,		/* Integer divide by zero.  */
+# define FPE_INTDIV	FPE_INTDIV
+  FPE_INTOVF,			/* Integer overflow.  */
+# define FPE_INTOVF	FPE_INTOVF
+  FPE_FLTDIV,			/* Floating point divide by zero.  */
+# define FPE_FLTDIV	FPE_FLTDIV
+  FPE_FLTOVF,			/* Floating point overflow.  */
+# define FPE_FLTOVF	FPE_FLTOVF
+  FPE_FLTUND,			/* Floating point underflow.  */
+# define FPE_FLTUND	FPE_FLTUND
+  FPE_FLTRES,			/* Floating point inexact result.  */
+# define FPE_FLTRES	FPE_FLTRES
+  FPE_FLTINV,			/* Floating point invalid operation.  */
+# define FPE_FLTINV	FPE_FLTINV
+  FPE_FLTSUB			/* Subscript out of range.  */
+# define FPE_FLTSUB	FPE_FLTSUB
+};
+
+/* `si_code' values for SIGSEGV signal.  */
+enum
+{
+  SEGV_MAPERR = 1,		/* Address not mapped to object.  */
+# define SEGV_MAPERR	SEGV_MAPERR
+  SEGV_ACCERR			/* Invalid permissions for mapped object.  */
+# define SEGV_ACCERR	SEGV_ACCERR
+};
+
+/* `si_code' values for SIGBUS signal.  */
+enum
+{
+  BUS_ADRALN = 1,		/* Invalid address alignment.  */
+# define BUS_ADRALN	BUS_ADRALN
+  BUS_ADRERR,			/* Non-existant physical address.  */
+# define BUS_ADRERR	BUS_ADRERR
+  BUS_OBJERR			/* Object specific hardware error.  */
+# define BUS_OBJERR	BUS_OBJERR
+};
+
+/* `si_code' values for SIGTRAP signal.  */
+enum
+{
+  TRAP_BRKPT = 1,		/* Process breakpoint.  */
+# define TRAP_BRKPT	TRAP_BRKPT
+  TRAP_TRACE			/* Process trace trap.  */
+# define TRAP_TRACE	TRAP_TRACE
+};
+
+/* `si_code' values for SIGCHLD signal.  */
+enum
+{
+  CLD_EXITED = 1,		/* Child has exited.  */
+# define CLD_EXITED	CLD_EXITED
+  CLD_KILLED,			/* Child was killed.  */
+# define CLD_KILLED	CLD_KILLED
+  CLD_DUMPED,			/* Child terminated abnormally.  */
+# define CLD_DUMPED	CLD_DUMPED
+  CLD_TRAPPED,			/* Traced child has trapped.  */
+# define CLD_TRAPPED	CLD_TRAPPED
+  CLD_STOPPED,			/* Child has stopped.  */
+# define CLD_STOPPED	CLD_STOPPED
+  CLD_CONTINUED			/* Stopped child has continued.  */
+# define CLD_CONTINUED	CLD_CONTINUED
+};
+
+/* `si_code' values for SIGPOLL signal.  */
+enum
+{
+  POLL_IN = 1,			/* Data input available.  */
+# define POLL_IN	POLL_IN
+  POLL_OUT,			/* Output buffers available.  */
+# define POLL_OUT	POLL_OUT
+  POLL_MSG,			/* Input message available.   */
+# define POLL_MSG	POLL_MSG
+  POLL_ERR,			/* I/O error.  */
+# define POLL_ERR	POLL_ERR
+  POLL_PRI,			/* High priority input available.  */
+# define POLL_PRI	POLL_PRI
+  POLL_HUP			/* Device disconnected.  */
+# define POLL_HUP	POLL_HUP
+};
+
+# undef __need_siginfo_t
+#endif	/* !have siginfo_t && (have _SIGNAL_H || need siginfo_t).  */
+
+
+#if (defined _SIGNAL_H || defined __need_sigevent_t) \
+    && !defined __have_sigevent_t
+# define __have_sigevent_t	1
+
+/* Structure to transport application-defined values with signals.  */
+# define __SIGEV_MAX_SIZE	64
+# if __WORDSIZE == 64
+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
+# else
+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
+# endif
+
+typedef struct sigevent
+  {
+    sigval_t sigev_value;
+    int sigev_signo;
+    int sigev_notify;
+
+    union
+      {
+	int _pad[__SIGEV_PAD_SIZE];
+
+	/* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
+	   thread to receive the signal.  */
+	__pid_t _tid;
+
+	struct
+	  {
+	    void (*_function) (sigval_t);	/* Function to start.  */
+	    void *_attribute;			/* Really pthread_attr_t.  */
+	  } _sigev_thread;
+      } _sigev_un;
+  } sigevent_t;
+
+/* POSIX names to access some of the members.  */
+# define sigev_notify_function   _sigev_un._sigev_thread._function
+# define sigev_notify_attributes _sigev_un._sigev_thread._attribute
+
+/* `sigev_notify' values.  */
+enum
+{
+  SIGEV_SIGNAL = 0,		/* Notify via signal.  */
+# define SIGEV_SIGNAL	SIGEV_SIGNAL
+  SIGEV_NONE,			/* Other notification: meaningless.  */
+# define SIGEV_NONE	SIGEV_NONE
+  SIGEV_THREAD,			/* Deliver via thread creation.  */
+# define SIGEV_THREAD	SIGEV_THREAD
+
+  SIGEV_THREAD_ID = 4		/* Send signal to specific thread.  */
+#define SIGEV_THREAD_ID	SIGEV_THREAD_ID
+};
+
+#endif	/* have _SIGNAL_H.  */
diff --git a/sysdeps/unix/sysv/linux/m68k/clone.S b/sysdeps/unix/sysv/linux/m68k/clone.S
index 6baf723d9b..a179f8e0fa 100644
--- a/sysdeps/unix/sysv/linux/m68k/clone.S
+++ b/sysdeps/unix/sysv/linux/m68k/clone.S
@@ -42,11 +42,21 @@ ENTRY (__clone)
 	movel	16(%sp), -(%a1)
 
 	/* Do the system call */
-	exg	%d2, %a1		/* save %d2 and get stack pointer */
 	movel	12(%sp), %d1		/* get flags */
+#ifdef __mcoldfire__
+	movel	%d2, -(%a1)
+	movel	%d2, -(%sp)
+	movel	%a1, %d2
+#else
+	exg	%d2, %a1		/* save %d2 and get stack pointer */
+#endif
 	movel	#SYS_ify (clone), %d0
 	trap	#0
+#ifdef __mcoldfire__
+	movel	(%sp)+, %d2
+#else
 	exg	%d2, %a1		/* restore %d2 */
+#endif
 
 	tstl	%d0
 	jmi	SYSCALL_ERROR_LABEL
diff --git a/sysdeps/unix/sysv/linux/m68k/configure b/sysdeps/unix/sysv/linux/m68k/configure
new file mode 100644
index 0000000000..94ccc508cc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/configure
@@ -0,0 +1,6 @@
+# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+ case $machine in
+m68k/coldfire)
+  arch_minimum_kernel=2.6.10
+  ;;
+esac
diff --git a/sysdeps/unix/sysv/linux/m68k/configure.in b/sysdeps/unix/sysv/linux/m68k/configure.in
new file mode 100644
index 0000000000..285b81f475
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/configure.in
@@ -0,0 +1,7 @@
+sinclude(./aclocal.m4)dnl Autoconf lossage
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+case $machine in
+m68k/coldfire)
+  arch_minimum_kernel=2.6.10
+  ;;
+esac
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list b/sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list
new file mode 100644
index 0000000000..913f051ff4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list
@@ -0,0 +1,4 @@
+# File name	Caller	Syscall name	Args	Strong name	Weak names
+
+oldgetrlimit	EXTRA	getrlimit	i:ip	__old_getrlimit	getrlimit@GLIBC_2.0
+oldsetrlimit	EXTRA	setrlimit	i:ip	__old_setrlimit	setrlimit@GLIBC_2.0
diff --git a/sysdeps/unix/sysv/linux/m68k/register-dump.h b/sysdeps/unix/sysv/linux/m68k/register-dump.h
index a7ac3ca01c..391902f494 100644
--- a/sysdeps/unix/sysv/linux/m68k/register-dump.h
+++ b/sysdeps/unix/sysv/linux/m68k/register-dump.h
@@ -40,6 +40,7 @@
 
 */
 
+#ifndef __mcoldfire__
 /* Linux saves only the call-clobbered registers in the sigcontext.  We
    need to use a trampoline that saves the rest so that the C code can
    access them.  We use the sc_fpstate field, since the handler is not
@@ -65,6 +66,7 @@ catch_segfault:\n\
 }
 #define catch_segfault(a,b) \
   __attribute_used__ real_catch_segfault(a,b)
+#endif
 
 static void
 hexvalue (unsigned long int value, char *buf, size_t len)
@@ -81,6 +83,8 @@ register_dump (int fd, struct sigcontext *ctx)
   char fpregs[11][24];
   struct iovec iov[63], *next_iov = iov;
   unsigned long *p = (unsigned long *) ctx->sc_fpstate + 1;
+  unsigned long *pfp = (unsigned long *) ctx->sc_fpregs;
+  int i, j, fpreg_size;
 
 #define ADD_STRING(str) \
   next_iov->iov_base = (char *) (str); \
@@ -91,51 +95,59 @@ register_dump (int fd, struct sigcontext *ctx)
   next_iov->iov_len = (len); \
   ++next_iov
 
+#ifdef __mcoldfire__
+  fpreg_size = 16;
+#else
+  fpreg_size = 24;
+#endif
+
   /* Generate strings of register contents.  */
   hexvalue (ctx->sc_d0, regs[0], 8);
   hexvalue (ctx->sc_d1, regs[1], 8);
+#ifdef __mcoldfire__
+  hexvalue (ctx->sc_d2, regs[2], 8);
+  hexvalue (ctx->sc_d3, regs[3], 8);
+  hexvalue (ctx->sc_d4, regs[4], 8);
+  hexvalue (ctx->sc_d5, regs[5], 8);
+  hexvalue (ctx->sc_d6, regs[6], 8);
+  hexvalue (ctx->sc_d7, regs[7], 8);
+#else
   hexvalue (*p++, regs[2], 8);
   hexvalue (*p++, regs[3], 8);
   hexvalue (*p++, regs[4], 8);
   hexvalue (*p++, regs[5], 8);
   hexvalue (*p++, regs[6], 8);
   hexvalue (*p++, regs[7], 8);
+#endif
   hexvalue (ctx->sc_a0, regs[8], 8);
   hexvalue (ctx->sc_a1, regs[9], 8);
+#ifdef __mcoldfire__
+  hexvalue (ctx->sc_a2, regs[10], 8);
+  hexvalue (ctx->sc_a3, regs[11], 8);
+  hexvalue (ctx->sc_a4, regs[12], 8);
+  hexvalue (ctx->sc_a5, regs[13], 8);
+  hexvalue (ctx->sc_a6, regs[14], 8);
+#else
   hexvalue (*p++, regs[10], 8);
   hexvalue (*p++, regs[11], 8);
   hexvalue (*p++, regs[12], 8);
   hexvalue (*p++, regs[13], 8);
   hexvalue (*p++, regs[14], 8);
+#endif
   hexvalue (ctx->sc_usp, regs[15], 8);
   hexvalue (ctx->sc_pc, regs[16], 8);
   hexvalue (ctx->sc_sr, regs[17], 4);
   hexvalue (ctx->sc_mask, regs[18], 8);
   hexvalue (ctx->sc_formatvec & 0xfff, regs[19], 4);
-  hexvalue (ctx->sc_fpregs[0], fpregs[0], 8);
-  hexvalue (ctx->sc_fpregs[1], fpregs[0] + 8, 8);
-  hexvalue (ctx->sc_fpregs[2], fpregs[0] + 16, 8);
-  hexvalue (ctx->sc_fpregs[3], fpregs[1], 8);
-  hexvalue (ctx->sc_fpregs[4], fpregs[1] + 8, 8);
-  hexvalue (ctx->sc_fpregs[5], fpregs[1] + 16, 8);
-  hexvalue (*p++, fpregs[2], 8);
-  hexvalue (*p++, fpregs[2] + 8, 8);
-  hexvalue (*p++, fpregs[2] + 16, 8);
-  hexvalue (*p++, fpregs[3], 8);
-  hexvalue (*p++, fpregs[3] + 8, 8);
-  hexvalue (*p++, fpregs[3] + 16, 8);
-  hexvalue (*p++, fpregs[4], 8);
-  hexvalue (*p++, fpregs[4] + 8, 8);
-  hexvalue (*p++, fpregs[4] + 16, 8);
-  hexvalue (*p++, fpregs[5], 8);
-  hexvalue (*p++, fpregs[5] + 8, 8);
-  hexvalue (*p++, fpregs[5] + 16, 8);
-  hexvalue (*p++, fpregs[6], 8);
-  hexvalue (*p++, fpregs[6] + 8, 8);
-  hexvalue (*p++, fpregs[6] + 16, 8);
-  hexvalue (*p++, fpregs[7], 8);
-  hexvalue (*p++, fpregs[7] + 8, 8);
-  hexvalue (*p++, fpregs[7] + 16, 8);
+  for (i = 0; i < 2; i++)
+    for (j = 0; j < fpreg_size; j += 8)
+      hexvalue (*pfp++, fpregs[i] + j, 8);
+#ifdef __mcoldfire__
+  p = pfp;
+#endif
+  for (i = 2; i < 8; i++)
+    for (j = 0; j < fpreg_size; j += 8)
+      hexvalue (*p++, fpregs[i] + j, 8);
   hexvalue (ctx->sc_fpcntl[0], fpregs[8], 8);
   hexvalue (ctx->sc_fpcntl[1], fpregs[9], 8);
   hexvalue (ctx->sc_fpcntl[2], fpregs[10], 8);
@@ -184,21 +196,21 @@ register_dump (int fd, struct sigcontext *ctx)
   ADD_MEM (regs[19], 4);
 
   ADD_STRING ("\n\n  FP0: ");
-  ADD_MEM (fpregs[0], 24);
+  ADD_MEM (fpregs[0], fpreg_size);
   ADD_STRING ("  FP1: ");
-  ADD_MEM (fpregs[1], 24);
+  ADD_MEM (fpregs[1], fpreg_size);
   ADD_STRING ("\n  FP2: ");
-  ADD_MEM (fpregs[2], 24);
+  ADD_MEM (fpregs[2], fpreg_size);
   ADD_STRING ("  FP3: ");
-  ADD_MEM (fpregs[3], 24);
+  ADD_MEM (fpregs[3], fpreg_size);
   ADD_STRING ("\n  FP4: ");
-  ADD_MEM (fpregs[4], 24);
+  ADD_MEM (fpregs[4], fpreg_size);
   ADD_STRING ("  FP5: ");
-  ADD_MEM (fpregs[5], 24);
+  ADD_MEM (fpregs[5], fpreg_size);
   ADD_STRING ("\n  FP6: ");
-  ADD_MEM (fpregs[6], 24);
+  ADD_MEM (fpregs[6], fpreg_size);
   ADD_STRING ("  FP7: ");
-  ADD_MEM (fpregs[7], 24);
+  ADD_MEM (fpregs[7], fpreg_size);
   ADD_STRING ("\n  FPCR: ");
   ADD_MEM (fpregs[8], 8);
   ADD_STRING ("  FPSR: ");
diff --git a/sysdeps/unix/sysv/linux/m68k/socket.S b/sysdeps/unix/sysv/linux/m68k/socket.S
index 1d10f33e17..2690f182a8 100644
--- a/sysdeps/unix/sysv/linux/m68k/socket.S
+++ b/sysdeps/unix/sysv/linux/m68k/socket.S
@@ -42,7 +42,7 @@
 .globl __socket
 ENTRY (__socket)
 #if defined NEED_CANCELLATION && defined CENABLE
-	SINGLE_THREAD_P
+	SINGLE_THREAD_P (%a0)
 	jne 1f
 #endif
 
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/reg.h b/sysdeps/unix/sysv/linux/m68k/sys/reg.h
index 418f8323f1..230fd2d05e 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/reg.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/reg.h
@@ -62,22 +62,35 @@ enum
 #define PT_SR PT_SR
   PT_PC = 18,
 #define PT_PC PT_PC
+
+#ifdef __mcoldfire__
+  PT_FP0 = 21,
+  PT_FP1 = 23,
+  PT_FP2 = 25,
+  PT_FP3 = 27,
+  PT_FP4 = 29,
+  PT_FP5 = 31,
+  PT_FP6 = 33,
+  PT_FP7 = 35,
+#else
   PT_FP0 = 21,
-#define PT_FP0 PT_FP0
   PT_FP1 = 24,
-#define PT_FP1 PT_FP1
   PT_FP2 = 27,
-#define PT_FP2 PT_FP2
   PT_FP3 = 30,
-#define PT_FP3 PT_FP3
   PT_FP4 = 33,
-#define PT_FP4 PT_FP4
   PT_FP5 = 36,
-#define PT_FP5 PT_FP5
   PT_FP6 = 39,
-#define PT_FP6 PT_FP6
   PT_FP7 = 42,
+#endif
+#define PT_FP0 PT_FP0
+#define PT_FP1 PT_FP1
+#define PT_FP2 PT_FP2
+#define PT_FP3 PT_FP3
+#define PT_FP4 PT_FP4
+#define PT_FP5 PT_FP5
+#define PT_FP6 PT_FP6
 #define PT_FP7 PT_FP7
+
   PT_FPCR = 45,
 #define PT_FPCR PT_FPCR
   PT_FPSR = 46,
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
index 3c441dc5ce..776466b75d 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
@@ -79,10 +79,14 @@ enum
 /* Structure to describe FPU registers.  */
 typedef struct fpregset
 {
-  int f_fpregs[8][3];
   int f_pcr;
   int f_psr;
   int f_fpiaddr;
+#ifdef __mcoldfire__
+  int f_fpregs[8][2];
+#else
+  int f_fpregs[8][3];
+#endif
 } fpregset_t;
 
 /* Context to describe whole processor state.  */
@@ -98,12 +102,12 @@ typedef struct
 /* Userlevel context.  */
 typedef struct ucontext
 {
-  unsigned long int uc_flags;
+  unsigned long uc_flags;
   struct ucontext *uc_link;
-  __sigset_t uc_sigmask;
   stack_t uc_stack;
   mcontext_t uc_mcontext;
-  long int uc_filler[174];
+  unsigned long uc_filler[80];
+  __sigset_t uc_sigmask;
 } ucontext_t;
 
 #endif /* sys/ucontext.h */
diff --git a/sysdeps/unix/sysv/linux/m68k/syscalls.list b/sysdeps/unix/sysv/linux/m68k/syscalls.list
index 98d30667bd..5367ef0d0b 100644
--- a/sysdeps/unix/sysv/linux/m68k/syscalls.list
+++ b/sysdeps/unix/sysv/linux/m68k/syscalls.list
@@ -1,5 +1,3 @@
 # File name	Caller	Syscall name	Args	Strong name	Weak names
 
 cacheflush	EXTRA	cacheflush	i:iiii	__cacheflush	cacheflush
-oldgetrlimit	EXTRA	getrlimit	i:ip	__old_getrlimit	getrlimit@GLIBC_2.0
-oldsetrlimit	EXTRA	setrlimit	i:ip	__old_setrlimit	setrlimit@GLIBC_2.0
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.h b/sysdeps/unix/sysv/linux/m68k/sysdep.h
index 091dfc9c7d..be37c894a1 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.h
@@ -18,6 +18,9 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#ifndef _LINUX_M68K_SYSDEP_H
+#define _LINUX_M68K_SYSDEP_H 1
+
 #include <sysdeps/unix/sysdep.h>
 #include <sysdeps/m68k/sysdep.h>
 
@@ -98,7 +101,7 @@
 # if RTLD_PRIVATE_ERRNO
 #  define SYSCALL_ERROR_HANDLER						      \
 SYSCALL_ERROR_LABEL:							      \
-    lea (rtld_errno, %pc), %a0;					      	      \
+    PCREL_OP (lea, rtld_errno, %a0, %a0);				      \
     neg.l %d0;								      \
     move.l %d0, (%a0);							      \
     move.l &-1, %d0;							      \
@@ -293,3 +296,4 @@ SYSCALL_ERROR_LABEL:							      \
 #define ASM_ARGS_6	ASM_ARGS_5, "a" (_a0)
 
 #endif /* not __ASSEMBLER__ */
+#endif