| www.delorie.com/archives/browse.cgi | search |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
| :list-unsubscribe:list-subscribe:list-archive:list-post | |
| :list-help:sender:subject:to:references:from:message-id:date | |
| :mime-version:in-reply-to:content-type; q=dns; s=default; b=UT0k | |
| umzixGwj9aWW+WahNtwH877JyxYzc9F9xjNiVz/MbZ81WXnJyekF3j/LoMgjuxF7 | |
| Nccn5h7R1o/+jCj8b+EQYPVZOuMXYtunGwm/Urgfr+amvOWLXlAHdfdB1k21+uw5 | |
| FAEW+pPJCS22P9dlOTvPaxw5nMF7eltnj6sCmIM= | |
| DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
| :list-unsubscribe:list-subscribe:list-archive:list-post | |
| :list-help:sender:subject:to:references:from:message-id:date | |
| :mime-version:in-reply-to:content-type; s=default; bh=7RU0g2cq+I | |
| IoG6gWWIUpQEH5HrQ=; b=SJQg5IuDQuPlA0n+P+ipe+UPYthtNjfsDjtVnIwv3Y | |
| Qcwfpta7FF6ujiSaTqsT5x3mSphxfCoPpSpgQpJ/M8/gpALQ/XCnJHUgvO3V20p5 | |
| GI5pRc9tICXo/GZYokZH4rjrjBZM3y3IgDb5Wa5YGb/xdyhE2+IHcHBIEqg2J3dX | |
| 0= | |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Id: | <cygwin.cygwin.com> |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sourceware.org/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
| Authentication-Results: | sourceware.org; auth=none |
| X-Spam-SWARE-Status: | No, score=-9.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=H*r:sk:mail-pl, HX-HELO:sk:mail-pl, HX-Spam-Relays-External:sk:mail-pl, H*RU:sk:mail-pl |
| X-HELO: | mail-pl1-f182.google.com |
| DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to; bh=yzMhxnqUzeTeUS8SfNKu08xaUVOxGyOsDlRI8BH5bI0=; b=KiipwtSJ404C/bp2Dynu+VG26zZfgGr7qsv1hDX5F0KsCIU59+bw/amxn8f1ineta2 cafYZLgcqTrrCwyYqJpbARQ1Hec+muDRx9VahwOJm44/WPfuMX5DsLbu3m48utGVu7bU UYGrR4FlkiX5W3RS+lna4n+xwxZ6XtJB9mScnqKEF+b17PGwu8cfJr0ei/Z/w7dQg/2k liF3/lPZNR9NpYKVzZTtlqAJmVRsUJH6zUHhKKKfoqqWT74Bom83EzW49WSdCOVAES6a 3vjmaIpLyio63rULim6z6tcWiV+5zXSxiszd1xw4m1aofG6SnXP/bDFjW2a33JTtvgcU MKLA== |
| Subject: | Re: linker (binutils ld) is unable to resolve weak symbol, depends on object file order |
| To: | cygwin AT cygwin DOT com |
| References: | <c302ea94-ae7b-f7b1-9d8f-0c2e31dc6bc7 AT ssi-schaefer DOT com> |
| From: | JonY <10walls AT gmail DOT com> |
| Openpgp: | preference=signencrypt |
| Message-ID: | <ab8db982-e923-0ef0-e830-6fd2dca1aed2@gmail.com> |
| Date: | Fri, 7 Jun 2019 11:22:45 +0000 |
| User-Agent: | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.0 |
| MIME-Version: | 1.0 |
| In-Reply-To: | <c302ea94-ae7b-f7b1-9d8f-0c2e31dc6bc7@ssi-schaefer.com> |
| X-IsSubscribed: | yes |
--DU9vNDhezDyjoahZJ2JWed9wr9wlnLgIL
Content-Type: multipart/mixed; boundary="HWAFqoOKSLSV6FYYvtyiX6ZKqsjzCm6Nw";
protected-headers="v1"
From: JonY <10walls AT gmail DOT com>
To: cygwin AT cygwin DOT com
Message-ID: <ab8db982-e923-0ef0-e830-6fd2dca1aed2 AT gmail DOT com>
Subject: Re: linker (binutils ld) is unable to resolve weak symbol, depends on
object file order
References: <c302ea94-ae7b-f7b1-9d8f-0c2e31dc6bc7 AT ssi-schaefer DOT com>
In-Reply-To: <c302ea94-ae7b-f7b1-9d8f-0c2e31dc6bc7 AT ssi-schaefer DOT com>
--HWAFqoOKSLSV6FYYvtyiX6ZKqsjzCm6Nw
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable
On 6/7/19 10:04 AM, Michael Haubenwallner wrote:
> Hi,
>=20
> so I'm encountering a strange problem related to object file order passed=
to
> the linker, with any binutils and gcc version available to setup-x86_64.e=
xe:
>=20
> $ cat weak-func.c
> extern void weakfunc() __attribute__((weak));
> void weakfunc() {}
>=20
> $ cat weak-main.c
> extern void weakfunc() __attribute__((weak));
> int main() { weakfunc(); }
>=20
> $ gcc -o weak.exe weak-func.c weak-main.c
> SUCCESS
>=20
> But then, changing the order of input files on the command line does break
> (does work on Linux of course):
>=20
> $ gcc -o weak.exe weak-main.c weak-func.c
> /usr/lib/gcc/x86_64-pc-cygwin/8.3.0/../../../../x86_64-pc-cygwin/bin/ld: =
/tmp/ccIthYHe.o:weak-main.c:(.text+0xe): relocation truncated to fit: R_X86=
_64_PC32 against undefined symbol `weakfunc'
> collect2: error: ld returned 1 exit status
>=20
> So the difference is that the object providing weakfunc is passed to
> the linker after the object requiring weakfunc.
>=20
> Attached is the weak-func.sh script that does perform these commands.
>=20
> Thanks!
> /haubi/
>=20
Unfortunately, PE doesn't really have a concept of weak symbols like
ELF, and is known to be broken in binutils.
--HWAFqoOKSLSV6FYYvtyiX6ZKqsjzCm6Nw--
--DU9vNDhezDyjoahZJ2JWed9wr9wlnLgIL
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEE5QrdnbBX9Ppk4bbPcTtf4pwUXUUFAlz6SQUACgkQcTtf4pwU
XUX3TBAAjtwH2FD59iajikVuR3ayDhG1bXv2P5Tpnqx6dOUS012ReS9YaAUjidqZ
UJLYn9QrBvCYior0vV6nxLaxPSe/eUKgDKaC72o3nzu9Vlv69M/5UPY8Qc5q1GNo
LrkdoNnV1l4fHfSKLpGEqKFU9U7li4uyoKRl9WuSuLUJed41ULBKl2fiRvf6LpWa
gZ9WjjXlFveUOE/WMek55YTcEo0t1XFeBqu2Leqvj1uRxcHB+CROHVxMmrzIvVhR
JhB2xmm6auB9fLh1bIVakp2WPy2ig7iRehdQimnyxjyF6QJP2Y5gNdqSUcudUkUT
MmxNeAyR3j60J+dTNT3rw0LgSunrmKgSjJS6ua7LcHgiXUBJJ74aHvQQN8BZ3DGB
Az2A0Js1DJXZ5sue4cYZbZn5EWNqphu6lqOidvtf/D4UwxEf8Wne/aBiY26C8RKS
oA14DenjZW5468fjABIyYWSfIzA1oo2I/bGpMJC4vEB4rAqED4a9gLj2pu9b5Hgj
5XS8AsQPOv/EgBGwKMFDP8jYKwWEuBePXfjzTDhT91LilVXUys1HRHg50gKF3bCN
PSV+T37ks2MAQ/Z9b5lv0oO/w7LiIeJ+eaZG53W9we+sA0wuotgSlQNgDOHy51Qq
Ha0fBKdR3jwRa5CRcZLxv/wTgd+B0ZvPKIbix/eBmgHy400cVt0=
=XtgN
-----END PGP SIGNATURE-----
--DU9vNDhezDyjoahZJ2JWed9wr9wlnLgIL--
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |