delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2000/11/17/14:35:58

Sender: richdawe AT bigfoot DOT com
Message-ID: <3A158878.2C59BE68@bigfoot.com>
Date: Fri, 17 Nov 2000 19:35:20 +0000
From: Richard Dawe <richdawe AT bigfoot DOT com>
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.17 i586)
X-Accept-Language: de,fr
MIME-Version: 1.0
To: djgpp-workers AT delorie DOT com
Subject: Re: Help: Isn't libdbg the debugging version of libc?
References: <5 DOT 0 DOT 1 DOT 4 DOT 0 DOT 20001116230739 DOT 00a55af0 AT pop5 DOT banet DOT net>
<5 DOT 0 DOT 1 DOT 4 DOT 0 DOT 20001116230739 DOT 00a55af0 AT pop5 DOT banet DOT net> <5 DOT 0 DOT 1 DOT 4 DOT 0 DOT 20001117121959 DOT 03459ad0 AT pop5 DOT banet DOT net>
Reply-To: djgpp-workers AT delorie DOT com

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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019