Mail Archives: djgpp-workers/2000/11/17/14:35:58
This is a cryptographically signed message in MIME format.
--------------ms1F46583A1E14A007155C24CE
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Hello.
"Peter J. Farley III" wrote:
[snip]
> Collected errors/warnings during full libc build:
[snip]
> gcc ... -c dbgcom.c
> dbgcom.c:25: warning: `id' defined but not used
> o:/tmp\ccirTSlS.s: Assembler messages:
> o:/tmp\ccirTSlS.s:530: Warning: Indirect lcall without `*'
> o:/tmp\ccirTSlS.s:559: Warning: Indirect ljmp without `*'
I got bitten by the lcall problem with libsocket. I've enclosed below the
'binutils' (well, 'as') version detection I used in libsocket's config
Makefile. Some comment lines have wrapped.
[Start Makefile extract]
#
# Binutils detection - as (the assembler) from binutils 2.8.1 and 2.9.5.1
beta
# handle the lcall mnemonic slightly differently. The assembly has
# #ifdef/#else/#endif to ensure that it compiles without warnings.
#
# OK, this is a bit ugly, but we have no choice. Unfortunately, it means
sed
# is required to build libsocket.
#
GAS_VERSION := $(shell $(AS) --version | sed -n 's/^GNU assembler //p')
GAS_MAJOR := \
$(shell echo $(GAS_VERSION) \
| sed -n 's/^\([0-9][0-9]*\).*/\1/p')
GAS_MINOR := \
$(shell echo $(GAS_VERSION) \
| sed -n 's/^[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/p')
GAS_MINORMINOR := \
$(shell echo $(GAS_VERSION) \
| sed -n 's/^[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/p')
# Defaults for version numbers
ifeq ($(GAS_MAJOR),)
GAS_MAJOR := 0
endif
ifeq ($(GAS_MINOR),)
GAS_MINOR := 0
endif
ifeq ($(GAS_MINORMINOR),)
GAS_MINORMINOR := 0
endif
# Pass defines as compiler switches
CFLAGS += -DGAS_MAJOR=$(GAS_MAJOR)
CFLAGS += -DGAS_MINOR=$(GAS_MINOR)
CFLAGS += -DGAS_MINORMINOR=$(GAS_MINORMINOR)
[End Makefile extract]
You can then do conditionals in your assembly, e.g.
__asm__ __volatile__ (
#if (GAS_MAJOR == 2) \
&& ((GAS_MINOR < 9) || ((GAS_MINOR == 9) && (GAS_MINORMINOR < 5)))
" lcall _csock_entry \n\
"
#else
" lcall *_csock_entry \n\
"
#endif
" jc 1f \n\
xorl %%eax, %%eax \n\
1:"
: "=a" (ret), "=b" (dest_port),
"=c" (dest_addr)
: "a" (12), "D" (csock->fd), "d" (i)
: "cc");
This is not very pretty, but I could not find any way of making the code
compiled without any warnings/errors with binutils 2.8.1 and 2.95.2 from
the same sources.
I'm not suggesting this be incorporated into the DJGPP build, since it
would add a dependency on sed, but it's a solution nonetheless.
Bye, Rich =]
--
Richard Dawe
[ mailto:richdawe AT bigfoot DOT com | http://www.bigfoot.com/~richdawe/ ]
--------------ms1F46583A1E14A007155C24CE
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
MIIHFQYJKoZIhvcNAQcCoIIHBjCCBwICAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC
BY0wggLMMIICNaADAgECAhB2D2twnX9wqhegGKLtJkJmMA0GCSqGSIb3DQEBBAUAMFgxJzAl
BgNVBAoTHkJyaXRpc2ggVGVsZWNvbW11bmljYXRpb25zIHBsYzEtMCsGA1UECxMkQlQgVHJ1
c3R3aXNlIC0gQ2xhc3MgMSBJbmRpdmlkdWFsIENBMB4XDTAwMTAxNTAwMDAwMFoXDTAxMTAx
NTIzNTk1OVowggERMScwJQYDVQQKEx5Ccml0aXNoIFRlbGVjb21tdW5pY2F0aW9ucyBwbGMx
LTArBgNVBAsTJEJUIFRydXN0d2lzZSAtIENsYXNzIDEgSW5kaXZpZHVhbCBDQTFGMEQGA1UE
CxM9d3d3LnRydXN0d2lzZS5jb20vcmVwb3NpdG9yeS9SUCBJbmNvcnAuIGJ5IFJlZi4sTElB
Qi5MVEQoYyk5ODEzMDEGA1UECxMqRGlnaXRhbCBJRCBDbGFzcyAxIC0gTmV0c2NhcGUgRnVs
bCBTZXJ2aWNlMRUwEwYDVQQDEwxSaWNoYXJkIERhd2UxIzAhBgkqhkiG9w0BCQEWFHJpY2hk
YXdlQGJpZ2Zvb3QuY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMJ3LQ1fxlYpzsChuJ16
J9dwyZIkhexC8uW2RGyxJVOG6643weIDoATk515qu8G91CS85rLDRFIB0u2N4ezCUCkCAwEA
AaMgMB4wCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMCB4AwDQYJKoZIhvcNAQEEBQADgYEA
llCoL5Afa66m9bxGh/gMgwUCCCOb6DdKHmJw9Q5h0xoEHuHOcEEjNPqQug5ZQaKioEIJM7DS
gsuSPrEy5Z521OzNWxN8nRv9YAlV3fVHQxcNlsjaAZru6zJxZ0+0uAKKFKOjJLTdfXFUqdcH
kcY2syIZo6DRSIap9pCqC+HYOoIwggK5MIICIqADAgECAhEA0zBJnvKZLVDb03kHStQNPTAN
BgkqhkiG9w0BAQIFADBfMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4x
NzA1BgNVBAsTLkNsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
dHkwHhcNOTgwMjEyMDAwMDAwWhcNMDMwMjEyMjM1OTU5WjBYMScwJQYDVQQKEx5Ccml0aXNo
IFRlbGVjb21tdW5pY2F0aW9ucyBwbGMxLTArBgNVBAsTJEJUIFRydXN0d2lzZSAtIENsYXNz
IDEgSW5kaXZpZHVhbCBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0QG30oEW28L0
Z/5fC03tfZ+a2ahBQYehZ6hrcb1PW6ZIXuqm5y8KpzYJ9rLhRkMA3BzH8eACTVhkn/qAJmqC
m2GTDa7eueV8q6A/0I/p9KwahkjEgG4exysZ9svlo21+HWn0yFtrHAraKuNoZOPpFnNP5dOp
AuObV5lKytU5AlkCAwEAAaN8MHowEQYJYIZIAYb4QgEBBAQDAgEGMEcGA1UdIARAMD4wPAYL
YIZIAYb4RQEHAQEwLTArBggrBgEFBQcCARYfd3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5
L1JQQTAPBgNVHRMECDAGAQH/AgEAMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQIFAAOBgQBS
Acma9vqkvYS4miXj6t5jPDVao9pIjdxWTjRoiRPRRi7wz0On9jUzqVK8sVcrPIpwxmvnlOyv
jM8KpZaJVXECrgclfNlGR58eSiyTSHyBO0XUK4XLJkwkBXyBmiHc+32l5gvC+QXuGccUEdg8
WZ/OOeoRMbCdGuw1+LeE55h4JzGCAVAwggFMAgEBMGwwWDEnMCUGA1UEChMeQnJpdGlzaCBU
ZWxlY29tbXVuaWNhdGlvbnMgcGxjMS0wKwYDVQQLEyRCVCBUcnVzdHdpc2UgLSBDbGFzcyAx
IEluZGl2aWR1YWwgQ0ECEHYPa3Cdf3CqF6AYou0mQmYwCQYFKw4DAhoFAKB9MBgGCSqGSIb3
DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTAwMTExNzE5MzUyMFowHgYJKoZI
hvcNAQkPMREwDzANBggqhkiG9w0DAgIBKDAjBgkqhkiG9w0BCQQxFgQUdmEhH2zw1BPvlhNg
z25jRS/Wt8IwDQYJKoZIhvcNAQEBBQAEQLTqdSH/Lh8MJoQTUaub7UwWcW+nrp0QlNxS8sE3
dpo5fRp3WrPXH0YT3Hw77iOIhjkNIk61RF2ShBs7mJhgZO8=
--------------ms1F46583A1E14A007155C24CE--
- Raw text -