Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patches for porting ea-utils to other POSIX platforms + warnings clean-up #40

Open
GoogleCodeExporter opened this issue Apr 29, 2015 · 1 comment

Comments

@GoogleCodeExporter
Copy link

What steps will reproduce the problem?

1. Build on a FreeBSD, OS X, or other non-Linux system using clang.

What is the expected output? What do you see instead?

A few bugs, many style warnings, some run-time errors due to the use of 
getopt() GNU extensions.

What version of the product are you using? On what operating system?

1.1.2 on FreeBSD and OS X.

Please provide any additional information below.

First, thanks for making this software readily available.  Some of our 
researchers expect to find it very useful.

I have attached a set of patches necessary to build on FreeBSD with clang, 
which is highly compatible with gcc, but a bit more verbose by default.

I found a few genuine bugs like "if (!o_n < MAX_FILES)" and patched a bunch of 
style warnings to silence the compiler.  There are more style warnings, mostly 
related to missing return values, but I left them for now.  I would suggest 
compiling with gcc -Wall to uncover potential problems like these.  I've found 
it very helpful in identifying real bugs, even though most of the warnings it 
produces are innocuous.

I also altered some of the getopt() loops to make them conform to POSIX 
behavior.  They were using a leading '-' in optstring, which is a GNU extension 
and probably only works on Linux.

I've developed a FreeBSD port (very much like an RPM) and will be developing a 
pkgsrc package for use on CentOS, NetBSD, OS X, and possibly other platforms.

Note that we have not extensively tested the attached patches yet.  That's 
going to take some time and I wanted to make you aware of them ASAP.  I have 
confirmed that they eliminate all critical errors in "make check".  I few 
errors are reported, but they're due to minor differences in the output such as 
-Nan vs NaN.

Regards,

    Jason
    jwbacon@tds.net


Original issue reported on code.google.com by bacon4...@gmail.com on 15 Feb 2015 at 5:28

Attachments:

@GoogleCodeExporter
Copy link
Author


Updated patch files that also work on Linux.

Linux getopt() doesn't conform to POSIX behavior unless explicitly told to.  
The updated patches set the POSIXLY_CORRECT environment variable (and remove 
one leading '-' from optstring that was left in the last patch set).

There is still one failure with fastq-multx I haven't figured out.  The results 
are correct, but the file names are missing from the output.  I'll keep working 
on it and send another update when it's resolved.

Original comment by bacon4...@gmail.com on 17 Feb 2015 at 3:02

Attachments:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant