c/2347: gcc does not accept "-l m" as POSIX permits (wants -lm)

schweikh@schweikhardt.net schweikh@schweikhardt.net
Thu Mar 22 11:06:00 GMT 2001


>Number:         2347
>Category:       c
>Synopsis:       gcc does not accept "-l m" as POSIX permits (wants -lm)
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 22 11:06:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Jens Schweikhardt
>Release:        any
>Organization:
>Environment:
any
>Description:
Problem: gcc does not understand "-l lib", i.e. the space between
-l and the library name which POSIX.2 permits.

I asked twice on the gcc-bugs mailing list, provided a patch
and changelog and think have done everything imaginable to
comply with procedures. Gerald Pfeifer encouraged my to
open an GNATS PR as a last resort. So here I go. I am
determined to get this patch committed, it's bugging me
ever since. So please give in to my poor soul begging!
You don't want to have an IOCCC winner soon applying for
write access to the repository :-)

How to repeat:

$ cat hello.c 
#include <stdio.h>
#include <math.h>
int main (void) { printf ("hello, world\n%f\n", sin (2.0)); return 0;}
$ gcc hello.c -l m
gcc: m: No such file or directory
$ gcc -v # on FreeBSD 4.1-R
Using builtin specs.
gcc version 2.95.2 19991024 (release)


The patch below fixes this:

$ ./cc hello.c -l m
$ ./a.out          
hello, world
0.909297
$ # Test whether the new error triggers:
$ ./cc hello.c -l  
cc: argument to `-l' is missing

Only a small patch for gcc, but a giant leap for the poor POSIX programmer :-)
>How-To-Repeat:
see Description.
>Fix:
See attached patch.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="gcc.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gcc.patch"

Q2hhbmdlTG9nOgoKICogZ2NjLmMgKHByb2Nlc3NfY29tbWFuZCk6IEFsbG93IC1sIGxpYiBpbiBh
ZGRpdGlvbiB0byAtbGxpYgogICBmb3IgUE9TSVggY29tcGxpYW5jZS4KCiAqIGludm9rZS50ZXhp
OiB1cGRhdGUgc2VjdGlvbiBvbiBMaW5rIE9wdGlvbnMgYWNjb3JkaW5nbHkuCgotLS0gZ2NjLmMu
b3JpZwlGcmkgRmViICA5IDIyOjIyOjA2IDIwMDEKKysrIGdjYy5jCVNhdCBGZWIgMTAgMDk6NTA6
NDcgMjAwMQpAQCAtMzI5MCw2ICszMjkwLDE0IEBACiAJICBuX2luZmlsZXMrKzsKIAkgIGkrKzsK
IAl9CisgICAgICBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItbCIpID09IDApCisJeworCSAg
aWYgKGkgKyAxID09IGFyZ2MpCisJICAgIGZhdGFsICgiYXJndW1lbnQgdG8gYC1sJyBpcyBtaXNz
aW5nIik7CisKKwkgIG5faW5maWxlcysrOworCSAgaSsrOworCX0KICAgICAgIGVsc2UgaWYgKHN0
cm5jbXAgKGFyZ3ZbaV0sICItbCIsIDIpID09IDApCiAJbl9pbmZpbGVzKys7CiAgICAgICBlbHNl
IGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItc2F2ZS10ZW1wcyIpID09IDApCkBAIC0zNzMwLDYgKzM3
MzgsMTQgQEAKIAl7CiAJICBpbmZpbGVzW25faW5maWxlc10ubGFuZ3VhZ2UgPSAiKiI7CiAJICBp
bmZpbGVzW25faW5maWxlcysrXS5uYW1lID0gYXJndlsrK2ldOworCX0KKyAgICAgIGVsc2UgaWYg
KHN0cmNtcCAoYXJndltpXSwgIi1sIikgPT0gMCkKKwl7IC8qIFBPU0lYIGFsbG93cyBzZXBhcmF0
aW9uIG9mIC1sIGFuZCB0aGUgbGliIGFyZzsKKwkgICAgIGNhbm9uaWNhbGl6ZSBieSBjb25jYXRl
bmF0aW5nIC1sIHdpdGggaXRzIGFyZyAqLworCSAgcmVnaXN0ZXIgY2hhciAqbGliYXJnID0geG1h
bGxvYyAoMyArIHN0cmxlbiAoYXJndlsrK2ldKSk7CisJICBzcHJpbnRmIChsaWJhcmcsICItbCVz
IiwgYXJndltpXSk7CisJICBpbmZpbGVzW25faW5maWxlc10ubGFuZ3VhZ2UgPSAiKiI7CisJICBp
bmZpbGVzW25faW5maWxlcysrXS5uYW1lID0gbGliYXJnOwogCX0KICAgICAgIGVsc2UgaWYgKHN0
cm5jbXAgKGFyZ3ZbaV0sICItbCIsIDIpID09IDApCiAJewoKCgoKLS0tIGludm9rZS50ZXhpLm9s
ZAlTdW4gTWFyICA0IDE4OjI1OjM1IDIwMDEKKysrIGludm9rZS50ZXhpCVN1biBNYXIgIDQgMTg6
NTI6MTcgMjAwMQpAQCAtMzYwNCwxMCArMzYwNCwxMyBAQAogCiBAY2luZGV4IExpYnJhcmllcwog
QGl0ZW0gLWxAdmFye2xpYnJhcnl9Ci1TZWFyY2ggdGhlIGxpYnJhcnkgbmFtZWQgQHZhcntsaWJy
YXJ5fSB3aGVuIGxpbmtpbmcuCitAaXRlbXggLWwgQHZhcntsaWJyYXJ5fQorU2VhcmNoIHRoZSBs
aWJyYXJ5IG5hbWVkIEB2YXJ7bGlicmFyeX0gd2hlbiBsaW5raW5nLiAgKFRoZSBzZWNvbmQKK2Fs
dGVybmF0aXZlIHdpdGggdGhlIGxpYnJhcnkgYXMgYSBzZXBhcmF0ZSBhcmd1bWVudCBpcyBvbmx5
IGZvcgorUE9TSVggY29tcGxpYW5jZSBhbmQgaXMgbm90IHJlY29tbWVuZGVkLikKIAogSXQgbWFr
ZXMgYSBkaWZmZXJlbmNlIHdoZXJlIGluIHRoZSBjb21tYW5kIHlvdSB3cml0ZSB0aGlzIG9wdGlv
bjsgdGhlCi1saW5rZXIgc2VhcmNoZXMgcHJvY2Vzc2VzIGxpYnJhcmllcyBhbmQgb2JqZWN0IGZp
bGVzIGluIHRoZSBvcmRlciB0aGV5CitsaW5rZXIgc2VhcmNoZXMgYW5kIHByb2Nlc3NlcyBsaWJy
YXJpZXMgYW5kIG9iamVjdCBmaWxlcyBpbiB0aGUgb3JkZXIgdGhleQogYXJlIHNwZWNpZmllZC4g
IFRodXMsIEBzYW1we2Zvby5vIC1seiBiYXIub30gc2VhcmNoZXMgbGlicmFyeSBAc2FtcHt6fQog
YWZ0ZXIgZmlsZSBAZmlsZXtmb28ub30gYnV0IGJlZm9yZSBAZmlsZXtiYXIub30uICBJZiBAZmls
ZXtiYXIub30gcmVmZXJzCiB0byBmdW5jdGlvbnMgaW4gQHNhbXB7en0sIHRob3NlIGZ1bmN0aW9u
cyBtYXkgbm90IGJlIGxvYWRlZC4K



More information about the Gcc-bugs mailing list