pkgsrc-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Getting net/cdpd to work on aarch64
Hello,
I'm trying to get net/cdpd working on an ARM board running NetBSD 
9.3/aarch64. Currently in runs fine on i386/amd64, but exits immediately 
on arm. It turns out that this simple looking bit of code is what's 
causing problems on ARM (the problem also exists for 32bit arm):
      while((c=getopt(argc,argv,"i:dt:hoa"))!=EOF) {
        switch(c) {
                case 'd': debug++;
                        break;
                case 'i':
                        cdp_interface_add(&ifaces,optarg);
                        ininited++;
                        break;
                case 't': timeout=atoi(optarg);
                        if(timeout<=0) {
                                printf("wrong value to timeout - 
reverting to default 60 sec\n");
                                timeout=60;
                        };
                        break;
                case 'o': once=1;
                        break;
                case 'a': allfaces=1;
                        break;
                default: usage();
                        exit(1);
        };
        };
Long story short, it looks like getopt is returning 255 after parsing 
the arguments, so changing the top line 
to "while((c=getopt(argc,argv,"i:dt:hoa"))!=255" makes things work 
now on arm. But the same change causes the amd64 version to fail because 
on amd64 getopt returns -1 when done. I'm a very poor c programmer so 
I'm hoping someone can figure out how to fix things so cdpd runs on both 
x86 and arm architectures.
Thanks,
Jason M.
Home |
Main Index |
Thread Index |
Old Index