From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20193 invoked by alias); 25 Apr 2006 19:20:43 -0000 Received: (qmail 20141 invoked from network); 25 Apr 2006 19:20:27 -0000 Received: from unknown (195.23.133.218) by sourceware.org with QMTP; 25 Apr 2006 19:20:27 -0000 Received: (qmail 1197 invoked from network); 25 Apr 2006 19:20:25 -0000 Received: from unknown (HELO mailfrt08.isp.novis.pt) ([195.23.133.200]) (envelope-sender ) by mailrly08.isp.novis.pt with compressed SMTP; 25 Apr 2006 19:20:25 -0000 Received: (qmail 28156 invoked from network); 25 Apr 2006 19:18:24 -0000 Received: from unknown (HELO mamas-laptop) ([195.23.225.175]) (envelope-sender ) by mailfrt08.isp.novis.pt with SMTP; 25 Apr 2006 19:18:24 -0000 Received: from localhost ([127.0.0.1]) by mamas-laptop with esmtp (Exim 4.60) (envelope-from ) id IYAJZK-0005VK-7B for binutils@sourceware.org; Tue, 25 Apr 2006 19:42:56 +0100 Message-ID: <444E6DA9.1060406@portugalmail.pt> Date: Tue, 25 Apr 2006 21:15:00 -0000 From: Pedro Alves Reply-To: binutils@sourceware.org User-Agent: Thunderbird 1.5.0.2 (Windows/20060308) MIME-Version: 1.0 To: binutils@sourceware.org Subject: Re: puzzled - old release works, newer doesn't References: <1144794175.3705.14.camel@dannypc> <444E5ABD.8070209@redhat.com> In-Reply-To: <444E5ABD.8070209@redhat.com> Content-Type: multipart/mixed; boundary="------------080008060400010708060201" X-IsSubscribed: yes Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2006-04/txt/msg00355.txt.bz2 This is a multi-part message in MIME format. --------------080008060400010708060201 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 5071 Nick Clifton wrote: > Hi Danny, > >> The old environment is based on gcc 3.4.2, gas 2.13.2, binutils 2.15. >> (Yes there's a mixup there.) The new environment is using gcc 4.1 and >> binutils 2.16. In all versions, the target platform is "arm-wince-pe". >> >> The person who created this distribution explains the mixup by saying >> that the GAS from 2.13 works, whereas the one in newer binutils doesn't. >> >> My personal experience with the 2.16 release appears to confirm that. > > Are you upgrading to the new GCC new GAS and new LD all at the same > time ? If not then that might be the cause. > > Are you aware of the --support-old-code linker switch which is > specific to the arm-wince-pe target ? Using this might help you. > > Using the latest binutils sources from CVS repository might also help. > If not then I would recommend comparing a disassembly of a working > binary and broken binary to see where there are changes. (Do not > compare the object files, but linked binaries. This should allow you > to find out how relocs may have been processed differently). > > Cheers > Nick > Here is a patch that "fixes" the differences between binutils cvs 20050202 and cvs head. Probably I got it all wrong, but at least it shows where the differences are. It fix most of the differences, but here is still something in the dll generation that produces quite some differences. I am still looking into it. That TE_WINCE addition is there because I didn't take the time yet to find the correct place. Any hints where that should be? Mind you, the both the 20050202 and the head versions I tested with, have quite a few more patches applied. This is just the portion that tries to fix the differences. It should also fix them for a pristine cvs version. Attached is the tar.gz with the tests I used, inspired on Danny's tests. Particularly, compiling this file (in the tar.gz) shows all the differences I could find. .global _ctype_ .text .global global_sym .def global_sym; .scl 2; .type 32; .endef _ctype_: .word _ctype_+7 global_sym: def_sym: undef_sym: nop nop nop b global_sym bl global_sym beq global_sym b def_sym bl def_sym beq def_sym b undef_sym bl undef_sym ldr r0, global_sym ldr r0, def_sym ldr r0, undef_sym Cheers, Pedro Alves Index: gas/config/tc-arm.c =================================================================== RCS file: /cvs/src/src/gas/config/tc-arm.c,v retrieving revision 1.256 diff -u -r1.256 tc-arm.c --- gas/config/tc-arm.c 7 Apr 2006 15:11:19 -0000 1.256 +++ gas/config/tc-arm.c 25 Apr 2006 15:52:17 -0000 @@ -11182,8 +11182,12 @@ then we just want to put out any pipeline compensation that the linker will need. Otherwise we want to use the calculated base. */ if (fixP->fx_pcrel - && ((fixP->fx_addsy && S_GET_SEGMENT (fixP->fx_addsy) != seg) - || arm_force_relocation (fixP))) + && ((fixP->fx_addsy && S_GET_SEGMENT (fixP->fx_addsy) != seg) +#ifdef TE_WINCE + || (!S_IS_EXTERNAL (fixP->fx_addsy) && arm_force_relocation (fixP)))) +#else + || arm_force_relocation (fixP))) +#endif base = 0; switch (fixP->fx_r_type) @@ -11220,7 +11224,19 @@ case BFD_RELOC_ARM_PCREL_BLX: case BFD_RELOC_ARM_PLT32: #ifdef TE_WINCE - return base; + /* + * When handling fixups immediately, because we have already + * discovered the value of a symbol, or the address of the frag involved + * we must account for the offset by +8, as the OS loader will never see the reloc. + * see fixup_segment() in write.c + * The S_IS_EXTERNAL test handles the case of global symbols. + * Those need the calculated base, not just the pipe compensation the linker will need. + */ + if (fixP->fx_pcrel && fixP->fx_addsy && (S_GET_SEGMENT (fixP->fx_addsy) == seg) + && (S_IS_EXTERNAL (fixP->fx_addsy) || !arm_force_relocation (fixP))) + return base + 8; + else + return base; #else return base + 8; #endif @@ -12107,10 +12123,16 @@ case BFD_RELOC_ARM_ROSEGREL32: case BFD_RELOC_ARM_SBREL32: case BFD_RELOC_32_PCREL: +#ifdef TE_WINCE + if (seg->use_rela_p && !fixP->fx_done) + break; + if (fixP->fx_done || fixP->fx_pcrel) + md_number_to_chars (buf, value, 4); +#else if (fixP->fx_done || !seg->use_rela_p) md_number_to_chars (buf, value, 4); +#endif break; - #ifdef OBJ_ELF case BFD_RELOC_ARM_PREL31: if (fixP->fx_done || !seg->use_rela_p) Index: gas/config/te-pe.h =================================================================== RCS file: /cvs/src/src/gas/config/te-pe.h,v retrieving revision 1.2 diff -u -r1.2 te-pe.h --- gas/config/te-pe.h 6 Nov 2002 19:36:19 -0000 1.2 +++ gas/config/te-pe.h 25 Apr 2006 15:52:24 -0000 @@ -1,3 +1,4 @@ +#define TE_WINCE #define TE_PE #define LEX_AT (LEX_BEGIN_NAME | LEX_NAME) /* Can have @'s inside labels. */ --------------080008060400010708060201 Content-Type: application/gzip; name="binutils-hunt.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="binutils-hunt.tar.gz" Content-length: 25584 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 XUdFlD9EfFJ2bYdkC6C6L7Nt3c6tkGzncYlQsk1hgvDxb7VcvOcKHz82TfwN B6CasVtP0eyhyT8qzXiPDNQT+lLMZB3kRdNp4YAf+zpdHPpDnCTjsszjRVU2 gvHWGLr5oY1o5hfFj7N19ngbp2H2yAOF8Hs23R4tF8JKpO4yNbqllQzIu+gV Dl64rWdleJZu6T0hQgxv3GjHZVUqPfyOjfac5DnGMe3Ae7YdsSq7mSGEvZLG 3d0kH6O9+nW4RGwbIkZ3svuzj7P5yTnDJiLLZC/QDNmzRd9DDx8vo40UJmxq vJ8GpClCLMvH+XIdl9GyrPKotiyz66OCS8LuRNlV7hG+nY6uvAruIgU9Ar7n cRpvqs14u03iZUBP+cZhmIssYJEG0OfB0ycoBcjHyzJ+iGrtz9mBYBv2F9Vm EeWXq5qs6MZB3Uf/KrYbD2N6ucQ0+TEP0ioJaJJvx0cjZBo9REltJxoh1IB1 93X0EBf0lLOmcMjuW3HZvxwcmLCkYxvdbBdUHSZMVbrIVbu5/cvZzyfXM0hy UrqiRy8FcWyA0uznKKfqn6WrTPE02vI8+EeWI00LBdAZp91Okc/f07sW7q5W SgcPJUG5ynIZxujh4pfJ7LgWSXXV5QN5+hdiuPfBa/ydr+i1Js5XWQxF6bRE t9SqrpcNF1kiVtnd/NN+AVYtYAefiPyry9uTa7rCzG9m/snfCDqMRrZljyfT OI1mZVBWHPaE3QO6o/dBWUb5M828dbvbtE/jVXQV5Ut2k4/dOn15RqQBvW4G 9Cts83jTjn4xWJUkHQru/FY+52/sUbHL+2rbpyt9rbnV36szpOtGaaNpJ1of u6IZ4kvVoW8KmEaQ5OcsKSEJtrMI9k74GyLt5IG944coB94OEV9kVaKz+sVp dbVFqs34NKvySZYW1SYKJYfIus6jzRaE1eleWn6VabfnhO+7iDmtow39Y/Dn 2rwmw8rehNaBLYc9JjfpRLP1SvTVfn7Mc0Tkud2Cpvsl0XNSlLRDgH96Mr6a ns3mBsacwTYHkCO7abFcG0QUsset6KB9p1GwlTpERlQLo33lraQLVx/zliG/ 3d06P2uzYM4yRM7azTvtMls18w4eZq6Ti/n1x9peNqtU+uy1lnZI8mZArgSU pYO+cKeIEQuHasK6KpgC/YS/490uBiBbPITt8O13IEZvjwf3vv4rW4JbD2Fv SGhtHYx1eRDqhoD6buZpl9vUau4dTGIXp7iMHlLDsmL2+WyZljeFkiX2WM6u DXccrYIqKVv24+6j/edZWCWR1IU+hOH4BrBTz7ERA5pBu+OiO7fLqzyeJEFR vGfvC7PTkmano4IGfVn8cvIUfWBv51JLqNf+lseqDFvjeRgSoMa1jzZZ/lwP QsWZuO2g3eMl1e+n6Fnq3fdedssn3JViQy9fFaqn9b1sJrJZiJ/d/NN+AXYt YAefPz+9Phkfqwhydgb9HgDhVr8PP5ePaZR3HY0A2lLTg6+FixE8JWynYUmT O+zezagU/l1fSeGPS3ZPitiXCFT7cKtiWJvNHxgS9cjsqo/L41z8BmQv+7SP 39Jr/h1sPr/dVXxJ70UKXXN2Lnmd2P10SvgxWSQdIHBnUpZOFzp0k4XU03R9 YOFpGeK2q/mLDqTpO/NYc015s1t7tvhFtPOIZ95ksc2SwVVAzwCxy6RFD+tr Y8jF1037MaDa9f/b+/rvNm5j0f4qnZP/YWs3p04j2YuP/aJP7qk/lMS3iu0n OU37khwemlxJbCmSISlbaer//WIGHwsMsKSSq6bv3qc9Fk1iMcAAmBkMBoOB Hg3DmkVnweXhYbPXKSgzBReloYF+8OMkfOXge8CUqgRbm3rswUW7vrbsgx38 o/217XyFLkPXaKm227fhklDd6RfGdIgr0Pri/VzPzbU9f3Kpg1Rpa09h636v JgBw9+Vo8re2BS/R2co2CZ1/uRkY/JB2ek8fAnbYktLwT+nxT3ErTouxdw+K wlv2GFJ90OfLCP6Hb158BYdcOPogrmtQn94/H23CZZCRn19Ozy+id9sIwlWw gQpwE4X7hxJD6glzC51bb7X2Qx0TsMKCpbObpXXXam23fv9XPCQWmMW+WszN PkBnE1Nd8+Ors2/wvIw1XHL7ojNY1pj0JR5dM2ml1IVCnLHOAFfrqk7b8WLe 2d/0UQqVdzabrvHVusOD7bQodZ1R6c7wuJ7u5xGAWgM0ptP7AIcAMfy/r14e kY0AGCg8wVLxp9PROhAhpxul+I9Wk5cjpB6OFtTwFJkx5qguLVgH8Bxdy7E5 eOpBYeTe+bWYUwtqJGaKUDd+PegRDmXal36ZjMPgqkLtS79Q9JPvn+WT/YBd ySy5d3KDSupt0Ib8maP/ZDG3KX2Ml2yfsHj26uWbo7/AFMHR5Xld8WeKQ9rr TTclWufxk9z+1NLhhNnfxibE7W8tqE+E/W2k9Il0CXqCPylcgp7WT0qbYCb0 k8olaL3spHYJ2nxy0nRY6UJZh2dhEHWYGkPICXO4ms2G06VL0Nr+8colaAX/ 9dgmmD2F12uXpdhGTraPN9DHSD/CjwEUOowEmYXOrKlF+I5ARFoGUIWFSuT+ mfEuUqHwNqPV+aHvmt8bmMkFV+E2GpFP7xXJaiKZcBuOyAuuUpOsJmwIj8MR iYZkNWFAuDQxHjrhJ8nJfQ/ZgvqUyijMQ4ct9W4NnfyvAnQr4vFWcJq3w1eH BeiWBQVtmg6h4pBuaA+XZRKgw5zlpKNLOiZBlBYubcSGPup1EF0rGI0tFfrr XcXtYIL2fugrF8W+ARga6yH0lIsCzgBI5H0YjXHUlpIMSeiBBhBnQUsqOiSh +5YF8NpRk/5tohE5C1tBQ0I00YCcBW0wPrn+1ndEr2EreBSYhYQouYrbEQeK YOlaupZwGqyFOONcJdoiyXgQJxsFsdysXO6CdBWJHHJFskcxXDhlwMvRtctd 0W4VETn52Slzs10npqwVQLsmDE9eff3mxUvU7/TpMc70USWO57/OjB7frdIS BolUUVIX1ecF/uzkxZsXz54cg7+NVQ7xiNia556FtjsyisaepKPIxbPVtNu/ 1xoEhIbfrEbLyCgcbGZ7676eCZdiiU0rddM8t3XiBpgGqzRYbTo3CX6bCtvf 29W87TvQMzz6y7Oj14Dc8PmL09evTl/YUcDggu3R9bjFqNGgxKlFiUpox1d4 RCc/iF6equXR+GLAujcv2/WmnbifA+4DqXXLpJ18PX8PASRE90bX0X5pTv3I nlMpadQ3gDoqRYVHdaFg9Vp9cvQMHGqxwRg/IvcQnJC1rXtF/FV48PJErcVW QFmFUbSKTqV1mYJ9DKfh6r1vNFK0m3YVbVs4cNh7X12iRwJWFBwJZvIxpLnj HcaIodTOHvqOugM7sdKd2LmeEqfeNFStoRrT8k4iERcxGLMnb559eXTirxkK GxgKSGq1mHU6Mg7A51dzPB92NNebjYU9elOgXnC9Hp58/RLXS59//VLznB0d qFetky/a1eerkTFMuGExSxQ3cqJbdKR7LIE9tl4vyIrAXyd0BXvdCyoNaGFb 1FuG1/OdrC20OgH/Vyiw/QCQLK/7xi4owYwes8PHyuSMe2vyaX0xWrW3acs6 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 x9bqK2BilsK/3cJQ9Bd2cCEHlzzMojodc4ic3sdh7p8wYEUIBmOi4YJ7PJqC wBUyghsTjApStM9TX6DdUXZ59fUdxsrktAY4j4lqQwtvlKjX/w/2f3P3/E94 3k7nV5vpbH14cTXfPNoo4TOcjObzHx+uL26tDjW/51VR6P9LCf8rsmH4Gx4m 5W9YLjkrcqGExG9yVrGS/ybLbw2DLc8V6LlZ9psnk0sl25WWOJosVol8L9v5 xdXlr4HRr/rc/+2jq/XqkSKDR29H64uP9j/aP3319cmzo8+QDD7aP3r55uSv n30znX+lhMOzkzenOnbBR/vPXx2/ePmnz9hH+1+/Pn715PlnOQA/zB5qKoKJ Qk1fUOS/u413T/8T8r9m/fEt1wE8XkrZx/+i5KXm/6oSUgD/F1VR3fH/r/Ho ZXH2+Yvjo+Hj/c2Py3bSnmV+Kn52r67max3AY32xWG2y9+OL0Wq4eby/D9n+ kJ1BwNjswXihFtwZvMv+cJD5vz55rLTvTWZ8HbIHAEbzHGQPHz60GcdgrLH5 VOL+fYWGUhiz4bPs99nvu5+n2e9H3s/X4c+X4c/j8Odfwp9Ps9+PvZ9f41uv 4jd/fX00fP7kzZNhPmS8yr7bz1Tqwd6WPy/PP4enu/6jIDcpdkee038On6qf r3v/dLb+912el+p7/1+YZ1ddX/9z+Jcb/megvsbvfX+/LM82DI919Tf5z0Ad 4/e+v1+Wh2L4LE2PjNdDtYRD+PxgL/Xv7t3/8+/29z1xOByD7B1+y7JPYXX+ ffZZ9hNCIucTUUQTDT3sf3jsl/mHbGhKXW5WqjzzQ1XAVD4Qu7PFeDQbnl3N H7xbTCef7P/0kSoYZPDeH85Uliw7U2Ao7B/cezRbnD/cXG/uHWT33t9TIjqz 4v3BmUr6sp3NFt+tvpv3vMo+XuLbg+wPHlY6Lwr/B2f449Ej3LB8kOMv7WWR 5Y/3P2iMIxXVYu745M3Jiy++ODpRjDM9m8NcZhNuq2U3wfZ+O1u3XUrXz5/A u/lkeqYa9OvN/4n13wW06t+y/quqnItcr//knf73azz96z8kg7v13//yJ+R/ w/q3XMeO9R/KBuD/XApZyBzXf3f2n1/n2Xt4Np21e/f0yI/vbd/A9bcI8Y7W I/g4dh+v4OO38GH/yO2yFF7cBD7ybDSbQ5FQ2o9SfqlfIdviBWNvzlgvQ48Y OEMB6TrirfGGsYnB9fZ+VGXhncER7mZK4Y7yftWu16Pz9uni+pvO28DUtrbH SmTgwCU89y3/HvGUIE7M/2vddbenAeye/439h6u3ev4vqvyO/3+Np3/+X9uJ fpcGkDsNgN1pAP/TngT/Ax/cpvq/m/+F3f+RUur9HyUT7vj/13j6+R+6wzK/ nnCH6x8v7/T+/11Pgv/dCN5WHTv4X836zKz/C1ZwCfwvyuKO/3+NJ8H/95Xm m52Px/Ih0wegMPq10pAXl9m4VS+yBxebzXLw6BH+evi2Xc2mi/XDSfuJAh6t Lg/fT+fj9nDZHkLmw0X2u5+0TPkwhPzr7PC0S3o4hjq/evKfnwn134uXWpyo L5B07/Cb2cHh4eXob4vVIVzp+uN6014evmtXa7VC+ex3P6lMHyDDdN6X4cXL D/dSaOErAPdRyQ7ni/VmMpu+jdFur9vscDZerNrJbAY4vjp+/uLks3sPHz56 ezWdTQ4dK43frXmeFznPuar65dE36XxDle8eFvT0P59Dlt/9hEV+UOh2SRr8 A+Sz7x+dj9aPRuvDefteY+WjuphNHnq/H64BzhSyFRASCeBH+8fPPz9+8sWp Goi/ZLvGIds1Dtlhq8rHGeVD15X3TNN0iz88st3zaPH2b3B/usb0+enqOmrl f9CUhwbm5xeoW/8fNKUrcDI9O8sOr/pq7AP0i1SpUAq0d3qWfate6LkUOuaH jGXfZ4+zzUU7/2h/zw31bKL+uQGLh9kM0IeYCFR+LMiOfV9JdtzTJZn8GqXt PTqhAwSpdIhUWtenP7NMizsdpbDM9EB5efqhg8GCdD1cZ1NvyLTSkxiyHUN6 f29vubzaZIfv8N9ZQrrc++588laxQ39O26u7c9q+cjmhEfBH5H84/2vV/7bn mF32vyLX63/O1eyv/T/K/G7+/1WeztNa77x15jaT3qn+4KLfnnkJj/cersez Pa7+B9g9Ad9a2Fnb3zfFOUuU+f1ptb/fFTDYV3n1FzgNYL7uzRdL/+NtgMPb ECWI2Bb83jPlYM7uu8rW/dhztWEu75c9L+QXadOiTB3cv3sU75675+65e+6e u+fuuXvunrvn7rl77p675+65e+6eu+fuuXvunrvn7rl77p675+65e+6eu+fu uXvunv9fn/8C17h9NABoAQA= --------------080008060400010708060201--