Mail Archives: cygwin/2001/09/20/23:22:50
--------------080409010702000603050301
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
The behavior reported, in which "long long" and "unsigned long long"
variables cannot be auto-imported, is not a bug. It is correct
behavior. Binutils correctly flags these variables with the "<variable>
can't be auto-imported" message, and exits.
The attached tarball can be used to demonstrate this behavior, and
inspection of the usedll.o file will reveal lines like this:
--relocations--
00000266 dir32 _dll_global_ll_var
0000026c dir32 _dll_global_ll_var
--disassembly--
265: a1 00 00 00 00 mov 0x0,%eax
26a: 8b 15 04 00 00 00 mov 0x4,%edx
Notice that (a) this long long variable is stored as a multiword
structure, and (b) accesses to the upper word of that structure use the
'bad' non-zero-addend addressing modes.
Therefore, long long (and unsigned long long) variables are properly
considered members of the "problematic" class of non-auto-importable
variables. The documentation in ld.info gives a number of mechanisms
that can be used to work around this problem -- but all require source
code modification, either in the dll or in the client or both.
The ld.info documentation as well as the binutils.README document
specifically refer to 'arrays' and 'structs' as problementic data types
for auto-import. However, that list is not intended to be complete or
exhaustive; merely representative.
*That* could be made more clear, I suppose. 'arrays' and 'structs' and
other multi-word variables...
--Chuck
--------------080409010702000603050301
Content-Type: application/octet-stream;
name="long_long_example.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="long_long_example.tar.gz"
H4sIADuTqjsAA+0YaW/TSLRfmV/x1IBUl9p1TqsprBbSglgVqCi79ANSNLHHySwTT9ZHS4T2
v++b8ZHYTihIUUGsnxJ7jnfNu2bGQgbTsVAP9pnOF4Id7+0cbLtnO04f33bb6dv6jT/1zmHP
drr9Tr/d7vWdPbvdddqdPejvXpU6JFFMQ4A995aLSAZb8d7IgN2HPvcMouZ/d+cR8F3+7/XQ
/7121278fx+wwf+eEJa7SxnK24NBb6v/+46T+d8e9LvK/33bxvy3d6nENvif+7/FA1ckHoN9
7ffZPiEqGkA/CA6N8Rf9k9CQwcFqhhvkCwEIWZyEAXA4BH5K/iXEk8lEsJQwbRfE2ZRXovSQ
0jslitQXksaaULcKOt0Dv0TmI5mvBVaUnQo5oVrnG/TqUzg5QeY3knt6NmJxBWNtSQG7xSGR
sFTSJm4FSll0KrnOu7zSKj/N40e7f1v+z3Yp4878b/dX+d8eqPrvYElo8v8eoMX9wGM+KK+P
Z+OsGnikhYM8YLVxwj7HDMN5lTfbaoRxmuPmmb+tJqww01zfUgMQbbP0SlrlSCrt4a60X8mu
8NyQzsi6xQKP+3B8WDUMHB7/BNn8/VDP/9f0E7pe7DDYVbZ/5fzX7ajaoPK/PXDa6f7f7Q+a
/L8PaJEW5B4HX4YwWk5veWCRFhmNcMubui4ZXV9jy338mJCz8+d/vsSOOQXzAxUCWubbjkJ4
cfHs5RVOPDzQKAYZ1UcuL/Mx85VFLs6K3gdxZJosoFgLTJrE0uTzhQxjlckMsxNRLGxh9qGy
f9GQyyQC9BrmKL4lTBIuPKXx2cXF+M2z1+dK2+VUb2T418Pn15fji1fPcUbwST5j0WLu7PzF
+hzzCXl/fvX+8t1brWISMRx/eJAqZBCCax+qpWUSDWwX+EaqaSST0GXREcjJ38yNscFi1wKc
u3o3uoKhMg0GnefSEMuH5brqYZC3z//IJhXaEMefWnJ9WLVwWI9qQagEnjIEjbEMYaXiyo6R
Be9nLGKg6qfSHm5nLEhNxbHGxTOm6Cy4YgwUaagMiMyQCnD5NBExsCAOl7CQPIgh3Q88mCxV
fbwN6eJUM8lxUUYILpplQt1PyIdHcCbEa8qDI6CBp3BRExyN4mQCXB+IeMBjS5lEmbEWD59V
DJjI0YyW84kU0fZAaaGIJaBnQqp8GKIRGIbGDDeTJXpBW2hOUXO2wAIOEuM7FYkhoSQS3dVu
UbGjb0CpViuz5xiFR+rTZc+0WiTLLmVwnFddHCTlsFmLwPUuamYM1/ga5AHmIpjRDD3qZaaQ
SaxMgEt+WqaEj+SBKaEuSbPK2pnFV11ljSym5qnWGO8u9ivhP8zywZIVhcmDhwejkQFK9O84
NyoEFLIKSvPCOgZTKGOnIlPnsMBF3+lgTEMdpaVHUqJfMuu6JOdUaOPmfNKIDBNMA13TiqhX
cZBlowVvZMzSGHEFx1CHRSinIZ1HcMCZdYScVHxj2c8i6RDFHOaJY8CM3jBdffCQJOcLrJ+Y
YzyeoU9ypHG6fuTkCzrVi8LgQY21na6v0VBuZsGVpfIyqdtZYS0s+gQZ5PSju8mrxKjJatW3
uLg5T5Utc1E2q9jEWjP3I/V3Szp8XaorGA1QaTOcg+lnJczYEJ1F+NbSYr24/ug981eC+vkv
T6bdybjj/texu4P8/ucMem19/uv1mvPffUDx/edJFHtcWrPfyIZPQuoAMMetHC9B8AUIYFnA
IR8O9iu3v66B++cjIbyPwf5R9WrYNfAKVaEt3/O6lq0Z+AV5fb7Oo3KprDPZgFDm8lLf9Nau
gPkxaghXWNCFp6r8yQkyLNMBeDzE3UQsoQbDsh1Kl8kqlxtO9d5EXTwwRlh9/SRwYy6DGpcN
19JvXwqLY65HRKK3LrPbLhaQr23Tdy/E+0YZv5qFOg4eVc1NNtrwUaHjfKugn9hM2edK++f4
PNlAAw000EADDTTQQAMN7BD+A3rTmxcAKAAA
--------------080409010702000603050301
Content-Type: text/plain; charset=us-ascii
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
--------------080409010702000603050301--
- Raw text -