From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14560 invoked by alias); 13 Oct 2013 10:17:32 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 14547 invoked by uid 89); 13 Oct 2013 10:17:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=4.1 required=5.0 tests=AWL,BAYES_50,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,ZIP_ATTACHED autolearn=no version=3.3.2 X-HELO: mail-we0-f179.google.com Received: from mail-we0-f179.google.com (HELO mail-we0-f179.google.com) (74.125.82.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sun, 13 Oct 2013 10:17:30 +0000 Received: by mail-we0-f179.google.com with SMTP id w61so5843398wes.38 for ; Sun, 13 Oct 2013 03:17:26 -0700 (PDT) X-Received: by 10.180.98.194 with SMTP id ek2mr10173700wib.15.1381659446432; Sun, 13 Oct 2013 03:17:26 -0700 (PDT) Received: from localhost ([2.28.235.51]) by mx.google.com with ESMTPSA id ma3sm23044762wic.1.1969.12.31.16.00.00 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sun, 13 Oct 2013 03:17:25 -0700 (PDT) From: Richard Sandiford To: binutils@sourceware.org, macro@codesourcery.com Mail-Followup-To: binutils@sourceware.org, macro@codesourcery.com, rdsandiford@googlemail.com Subject: [MIPS, committed] Add tests for MIPS16 and microMIPS PLTs Date: Sun, 13 Oct 2013 10:17:00 -0000 Message-ID: <87a9ida30r.fsf@talisman.default> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-SW-Source: 2013-10/txt/msg00210.txt.bz2 --=-=-= Content-Type: text/plain Content-length: 1873 This patch adds tests for MIPS16 PLT entries, microMIPS PLT entries and microMIPS lazy-binding stubs. It's along the lines mentioned in: http://article.gmane.org/gmane.comp.gnu.binutils/61257 Maciej, you were concerned that this might lose some of your original testing, so please let me know if I missed something. We can tweak the tests or add new ones if necessary. Tested on the usual targets and applied. Richard ld/testsuite/ * lib/ld-lib.exp (default_ld_compile): Add a -I option for the source directory. * ld-mips-elf/compressed-plt-1.ld, ld-mips-elf/compressed-plt-1.s, ld-mips-elf/compressed-plt-1-dyn.s, ld-mips-elf/compressed-plt-1a.s, ld-mips-elf/compressed-plt-1b.s, ld-mips-elf/compressed-plt-1c.s, ld-mips-elf/compressed-plt-1d.s, ld-mips-elf/compressed-plt-1e.s, ld-mips-elf/compressed-plt-1-o32-se.rd, ld-mips-elf/compressed-plt-1-o32-se.od, ld-mips-elf/compressed-plt-1-o32-mips16-only.rd, ld-mips-elf/compressed-plt-1-o32-mips16-only.od, ld-mips-elf/compressed-plt-1-o32-umips-only.rd, ld-mips-elf/compressed-plt-1-o32-umips-only.od, ld-mips-elf/compressed-plt-1-o32-mips16.rd, ld-mips-elf/compressed-plt-1-o32-mips16.od, ld-mips-elf/compressed-plt-1-o32-mips16-got.rd, ld-mips-elf/compressed-plt-1-o32-mips16-got.od, ld-mips-elf/compressed-plt-1-o32-mips16-word.rd, ld-mips-elf/compressed-plt-1-o32-mips16-word.od, ld-mips-elf/compressed-plt-1-o32-umips.rd, ld-mips-elf/compressed-plt-1-o32-umips.od, ld-mips-elf/compressed-plt-1-o32-umips-got.rd, ld-mips-elf/compressed-plt-1-o32-umips-got.od, ld-mips-elf/compressed-plt-1-o32-umips-word.rd, ld-mips-elf/compressed-plt-1-o32-umips-word.od, ld-mips-elf/compressed-plt-1-n32-mips16.rd, ld-mips-elf/compressed-plt-1-n32-mips16.od, ld-mips-elf/compressed-plt-1-n32-umips.rd, ld-mips-elf/compressed-plt-1-n32-umips.od: New tests. * ld-mips-elf/mips-elf.exp: Run them. --=-=-= Content-Type: application/x-bzip2 Content-Disposition: attachment; filename=mips16-plt-tests-2.diff.bz2 Content-Transfer-Encoding: base64 Content-length: 17381 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 H0gqnMpyA5qa8tMiUpSmup1NJuS6iaRESkTb2l2vYXbRLhy5cuQeby0881zr daZmMo65c90r01qvsxONuqtUFlAeInxvlLP0VL8Kcr1TH6BYHvJ4aY0iUpSm 0iWyZJE0hs2YzZpalHyX7v3jH1OTzjHhjHDTrTx07zxza7yzuXeOdPJ1zxzx 4c6Z0zrrxrrx1zWvLrNOudNOeOZzh005rr6exFXx6P1fH70PRPbrC6/Cn6n3 TzLoH8uYbcSX8MOfsr6naeGHw92N8aGxufWnpSfyOSkIwpxIt0tCIYWjQEgR G2N4a8+8njr0a+Xuul7xDy+cV/AdPo+X359Or1r6M+I7bbTJm2VWt9gA18nm 7L/R9Qr6OAPecHoOshCECAQCAQCB4PB4PB4PB4PB4PB4PBAIBAIpFIpFIpFN j5fn6vm6uvxr9HvCvEuN+csjE9ZYX16ob712G7JmZERH1vqPsFerwfCOrmOr sEA7tgQNQPmgJBS+8P9o+f+8px3TjSYx5T5U6jE9CiFhX4Ap1H/QEQIuIBgq cdHjFfn9/7tvJvBjw6POMeGMdWOtIWl2UVRI0XY3Cy0iW2QshAstZ0zrrxrr x1zWvLrNOudNOeFlFlgWlJZTb19vPeCQSCdgl3mARCIYhAIsWLd3JMiRImJd 5gEAgGARYsWLJJBixYsAiRIkGLFiwYMGDBgwYMGJEiQYkSJAIECBAIMGDAgE AgESEIRjGMSJEiRjGMYxjGMYxhCFllkYxjEjGMCEIRjGMIQhGEISMYwhCEhC EYQhCEIRhCFllkCDBgyEIRjGMYQhIxjGEIRjGMYxjYQNBbbpss8xZZhZZzLL IbgqrFO0QP6Ov/kKHfi83c+NPtHwm02m02NjZFFFFFFFKmMsF4VgPDrw9v1+ B3eUvj4Swr91ui69SnaBIICAmEiRBGjL9Vrry5HDBhl1rrrkcMOMccc5l1rr rnMjRl+u115cjhgwy9WuvLkcMvVrry5z0auHGOPDnMjRlrWuuRwwYZerXXly OHq9cvBxjj0c6mWta65zI0Zda665HDBhl1rrrkcPGksaaaY2WIHH3QDz/J7H XsPhhPTC8qtavQphKheWM+sfyAeKP19Hd4qjiBDByUh7/3TV/ghD+n169l8K f3u9vxhD+dP4TTjWZKUpXG9K62TqXVw5pN1LqJpERKRPNcuVcu11t8zXDly5 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 AoSgKrNdc5g1xuaKVNlKI44Nt5hwwwwwwwwYMFSpqI6cA6VcqVpUq6vHgvDp 4c4yczO53Dg6O53Dg4fC9nw3qj1jGMZ7dzu0dHRo4cO27Bs7hwcXMc5ZWHDh cOHDrXWutdZa661rrLrrl111GMYx27du3btww4YcOHB27Rw4cMccMZcZMOHB w4cMsuWXM5kYxjHbt27cMOGHDhwsOHDjjGOHDhwuHDg1rrXWutHXWuuta65d dcGWXLnOYMMbdjtzduGHDCw6O7YcCwDxOHyMrnfu9suTPLqmBwBzKaaApoKa LhzhYYnGZmTLMm23MLDI59GPD6+eemsz0dbWthmLUptkqxozNRsbaNpNMVsb HWmtOucc1rU5zhwwOHODOcOGB0ddbrixnd1xo4y412WtGsXWXdtdbri1ncx1 2WtHdy6xda7uusXWK5lzStpsrtdqDtdqOYnOTDGjG1NGePW6eSMMMMMMtbCz MyzDMzMykCShUoVKhU1NTVA1NQqVCpUqVKlU2mZmZlmZtKoBUqVKjUqlQYYY ZZZmGDbbDDDDDBhhgw1rWWWta1pYMWxmwwww2wwYYZLDLIZazTDDDDZmWGZl lmZYZmZmSQIiIgg0KG4Sbn8xRAMv310XPCaCiBRLA62A/zOIYK5BMH9pHLCW tw/rep1/pBGbw+lpK1Z2lhy2bsz89KjoLi+yss5mLk0myaZk2S/XLm6y3TmU yXbr2JZfBMveny/5n/vzpmZnst/vmIpOjVkpoDsfJX0ggBNUmG6mTgckXMnv XK0P3wjuL4PI75MplMLKDIwqeFP9Ph5TU1N+umf/guF8J0uBZZYsrUYVc1Gx cpcKmKW1VcpfNCwT6K4dFkPI7S56wX9Ckbo/Ho5gjoJT7TychQ1MJXU9dFK0 XH62l8qaniHpCze/cisUilIdQFnmTmGhyV1WA57GR3GaC/NOPJT7xGBT6H8Y I+H1jxbi2tqbPax7rVleRlqyZZMWVrMyz8SX87x5Xb0v4iWv5yGXygsyfQe4 VY7/WWVzyJYi67IP2kjp96IT9qUBQJBcWBTEQQilgA4eeSeangUO1ervs7q9 StKUpUY2ZLJMyZSkkm2Zplk0zSZKmRhMGGDBhhWGDBkZV6P8F7Xtff7PgJgw wYMMKwwY9/032X5e4/OPinzn6x/kH1f5Lv/B8Tm2XpOR7Trb4Ty2w94jVVVa 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 --=-=-=--