diff -u bfd/config.bfd ../binutils-2.13.2.1.newclean/bfd/config.bfd
--- bfd/config.bfd	2002-11-07 16:57:50.000000000 +0000
+++ ../binutils-2.13.2.1.newclean/bfd/config.bfd	2004-02-17 18:50:54.000000000 +0000
@@ -152,6 +152,12 @@
     targ_underscore=no
     targ_cflags=-DARM_WINCE
     ;;
+  strongarm-wince-pe | strongarm-*-wince)
+    targ_defvec=armpe_little_vec
+    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
+    targ_underscore=no
+    targ_cflags=-DARM_WINCE
+    ;;
   arm-*-pe*)
     targ_defvec=armpe_little_vec
     targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
Common subdirectories: bfd/doc and ../binutils-2.13.2.1.newclean/bfd/doc
Only in ../binutils-2.13.2.1.newclean/bfd: good
Common subdirectories: bfd/hosts and ../binutils-2.13.2.1.newclean/bfd/hosts
diff -u bfd/peicode.h ../binutils-2.13.2.1.newclean/bfd/peicode.h
--- bfd/peicode.h	2002-09-23 20:11:17.000000000 +0100
+++ ../binutils-2.13.2.1.newclean/bfd/peicode.h	2004-03-28 23:30:52.000000000 +0100
@@ -503,8 +503,10 @@
 		     bfd_reloc_code_real_type  reloc,
 		     asection_ptr              sec)
 {
+  int tmp=0;
+  memcpy(&tmp,&coff_section_data (vars->abfd, sec)->i,sizeof(coff_section_data (vars->abfd, sec)->i));
   pe_ILF_make_a_symbol_reloc (vars, address, reloc, sec->symbol_ptr_ptr,
-			      coff_section_data (vars->abfd, sec)->i);
+			      tmp);
 }
 
 /* Move the queued relocs into the given section.  */
@@ -512,13 +514,14 @@
 pe_ILF_save_relocs (pe_ILF_vars * vars,
 		    asection_ptr  sec)
 {
+  bfd_boolean btrue=TRUE;
   /* Make sure that there is somewhere to store the internal relocs.  */
   if (coff_section_data (vars->abfd, sec) == NULL)
     /* We should probably return an error indication here.  */
     abort ();
 
-  coff_section_data (vars->abfd, sec)->relocs = vars->int_reltab;
-  coff_section_data (vars->abfd, sec)->keep_relocs = TRUE;
+  memcpy(&coff_section_data (vars->abfd, sec)->relocs,&vars->int_reltab,sizeof(vars->int_reltab));
+  memcpy(&coff_section_data (vars->abfd, sec)->keep_relocs, &btrue, sizeof(bfd_boolean));
 
   sec->relocation  = vars->reltab;
   sec->reloc_count = vars->relcount;
@@ -678,7 +681,10 @@
   pe_ILF_make_a_symbol (vars, "", name, sec, BSF_LOCAL);
 
   /* Cache the index to the symbol in the coff_section_data structure.  */
-  coff_section_data (vars->abfd, sec)->i = vars->sym_index - 1;
+  {
+  	int tmp=vars->sym_index - 1;
+  	memcpy(&coff_section_data (vars->abfd, sec)->i , &tmp, sizeof(vars->sym_index));
+  }
 
   return sec;
 }
@@ -880,12 +886,13 @@
   /* Fill in the contents of these sections.  */
   if (import_name_type == IMPORT_ORDINAL)
     {
+      unsigned int tmp=ordinal | 0x80000000;
       if (ordinal == 0)
 	/* XXX - treat as IMPORT_NAME ??? */
 	abort ();
 
-      * (unsigned int *) id4->contents = ordinal | 0x80000000;
-      * (unsigned int *) id5->contents = ordinal | 0x80000000;
+      memcpy( (unsigned int *) id4->contents ,&tmp,4);
+      memcpy( (unsigned int *) id5->contents ,&tmp,4);
     }
   else
     {
