[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#650683: Fix for !linux architectures



Package: mothur
Version: 1.22.2-1
Severity: important
Tags: patch
User: debian-bsd@lists.debian.org
Usertags: kfreebsd

Hi!

  Seems mothur doesn't build on !linux debian architectures because
it's authors believed everything thyat isn't linux or a mac is
windows. The patch below should fix that for the *debian*
architectures. For upstream a different patch might be more suiteable
to e.g. include plain FreeBSD.

Regards

    Christoph

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: kfreebsd-amd64 (x86_64)

Kernel: kFreeBSD 8.2-1-amd64
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
--- mothur-1.22.2.orig/classifyseqscommand.h
+++ mothur-1.22.2/classifyseqscommand.h
@@ -128,7 +128,7 @@ typedef struct classifyData {
 };
 
 /**************************************************************************************************/
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #else
 static DWORD WINAPI MyClassThreadFunction(LPVOID lpParam){ 
 	classifyData* pDataArray;
--- mothur-1.22.2.orig/parsimony.cpp
+++ mothur-1.22.2/parsimony.cpp
@@ -54,7 +54,7 @@ EstOutput Parsimony::getValues(Tree* t,
 			}
 		}
 		
-	#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+	#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		if(processors == 1){
 			data = driver(t, namesOfGroupCombos, 0, namesOfGroupCombos.size());
 		}else{
@@ -91,7 +91,7 @@ EstOutput Parsimony::getValues(Tree* t,
 
 EstOutput Parsimony::createProcesses(Tree* t, vector< vector<string> > namesOfGroupCombos) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		vector<int> processIDS;
 		
--- mothur-1.22.2.orig/classifyseqscommand.cpp
+++ mothur-1.22.2/classifyseqscommand.cpp
@@ -383,7 +383,7 @@ ClassifySeqsCommand::ClassifySeqsCommand
 			temp = validParameter.validFile(parameters, "save", false);			if (temp == "not found"){	temp = "f";				}
 			save = m->isTrue(temp); 
 			//this is so the threads can quickly load the reference data
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			#else
 			if ((processors != 1) && (rdb->referenceSeqs.size() == 0)) { save = true; }
 			#endif
@@ -599,7 +599,7 @@ int ClassifySeqsCommand::execute(){
 #else
 		
 			vector<unsigned long long> positions; 
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			positions = m->divideFile(fastaFileNames[s], processors);
 			for (int i = 0; i < (positions.size()-1); i++) {	lines.push_back(new linePair(positions[i], positions[(i+1)]));	}
 #else
@@ -796,7 +796,7 @@ int ClassifySeqsCommand::createProcesses
 		int num = 0;
 		processIDS.clear();
 		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		
 		//loop through and create all the processes you want
@@ -965,7 +965,7 @@ int ClassifySeqsCommand::driver(linePair
 			}
 			delete candidateSeq;
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = inFASTA.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
--- mothur-1.22.2.orig/chimerauchimecommand.cpp
+++ mothur-1.22.2/chimerauchimecommand.cpp
@@ -461,7 +461,7 @@ ChimeraUchimeCommand::ChimeraUchimeComma
 			path = path.substr(0, (tempPath.find_last_of('m')));
 			
 			string uchimeCommand;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			uchimeCommand = path + "uchime";	//	format the database, -o option gives us the ability
 #else
 			uchimeCommand = path + "uchime.exe";
@@ -543,7 +543,7 @@ int ChimeraUchimeCommand::execute(){
 				if (chimealns) { m->openOutputFile(alnsFileName, out2); out2.close(); }
 				int totalSeqs = 0;
 				
-	#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+	#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1)	{	totalSeqs = driverGroups(parser, outputFileName, newFasta, accnosFileName, alnsFileName, 0, groups.size(), groups);	}
 				else				{	totalSeqs = createProcessesGroups(parser, outputFileName, newFasta, accnosFileName, alnsFileName, groups);			}
 	#else
@@ -563,7 +563,7 @@ int ChimeraUchimeCommand::execute(){
 			
 				int numSeqs = 0;
 				int numChimeras = 0;
-	#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+	#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){ numSeqs = driver(outputFileName, fastaFileNames[s], accnosFileName, alnsFileName, numChimeras); }
 				else{	numSeqs = createProcesses(outputFileName, fastaFileNames[s], accnosFileName, alnsFileName, numChimeras); }
 	#else
@@ -990,7 +990,7 @@ int ChimeraUchimeCommand::driver(string
 		vector<char*> cPara;
 	
 		char* tempUchime;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		tempUchime= new char[10];  
 		*tempUchime = '\0';
 		strncat(tempUchime, "./uchime ", 9); 
@@ -1286,7 +1286,7 @@ int ChimeraUchimeCommand::createProcesse
 		processIDS.clear();
 		int process = 1;
 		int num = 0;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)		
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)		
 		//break up file into multiple files
 		vector<string> files;
 		m->divideFile(filename, processors, files);
@@ -1389,7 +1389,7 @@ int ChimeraUchimeCommand::createProcesse
 			lines.push_back(linePair(startIndex, endIndex));
 		}
 		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)		
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)		
 				
 		//loop through and create all the processes you want
 		while (process != processors) {
--- mothur-1.22.2.orig/trimseqscommand.cpp
+++ mothur-1.22.2/trimseqscommand.cpp
@@ -363,7 +363,7 @@ int TrimSeqsCommand::execute(){
 		}	
 		if(qFileName == "")	{	qLines = lines;	} //files with duds
 		
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 					driverCreateTrim(fastaFile, qFileName, trimSeqFile, scrapSeqFile, trimQualFile, scrapQualFile, trimNameFile, scrapNameFile, outputGroupFileName, fastaFileNames, qualFileNames, nameFileNames, lines[0], qLines[0]);
 				}else{
@@ -723,7 +723,7 @@ int TrimSeqsCommand::driverCreateTrim(st
 				count++;
 			}
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = inFASTA.tellg();
 				if ((pos == -1) || (pos >= line->end)) { break; }
 			
@@ -758,7 +758,7 @@ int TrimSeqsCommand::driverCreateTrim(st
 
 int TrimSeqsCommand::createProcessesCreateTrim(string filename, string qFileName, string trimFASTAFileName, string scrapFASTAFileName, string trimQualFileName, string scrapQualFileName, string trimNameFileName, string scrapNameFileName, string groupFile, vector<vector<string> > fastaFileNames, vector<vector<string> > qualFileNames, vector<vector<string> > nameFileNames) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		int exitCommand = 1;
 		processIDS.clear();
@@ -942,7 +942,7 @@ int TrimSeqsCommand::createProcessesCrea
 
 int TrimSeqsCommand::setLines(string filename, string qfilename, vector<unsigned long long>& fastaFilePos, vector<unsigned long long>& qfileFilePos) {
 	try {
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		//set file positions for fasta file
 		fastaFilePos = m->divideFile(filename, processors);
 		
--- mothur-1.22.2.orig/mothurout.cpp
+++ mothur-1.22.2/mothurout.cpp
@@ -143,7 +143,7 @@ void MothurOut::setDefaultPath(string pa
 	
 		//add / to name if needed
 		string lastChar = pathname.substr(pathname.length()-1);
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			if (lastChar != "/") { pathname += "/"; }
 		#else
 			if (lastChar != "\\") { pathname += "\\"; }	
@@ -332,7 +332,7 @@ void MothurOut::errorOut(exception& e, s
 //
 // On failure, returns 0.0, 0.0
 int MothurOut::mem_usage(double& vm_usage, double& resident_set) {
-  #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+  #if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
   
 	   vm_usage     = 0.0;
 	   resident_set = 0.0;
@@ -504,7 +504,7 @@ string MothurOut::getline(ifstream& file
 }
 /***********************************************************************/
 
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #ifdef USE_COMPRESSION
 inline bool endsWith(string s, const char * suffix){
   size_t suffixLength = strlen(suffix);
@@ -518,7 +518,7 @@ string MothurOut::getRootName(string lon
 	
 		string rootName = longName;
 
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #ifdef USE_COMPRESSION
     if (endsWith(rootName, ".gz") || endsWith(rootName, ".bz2")) {
       int pos = rootName.find_last_of('.');
@@ -673,7 +673,7 @@ string MothurOut::getFullPathName(string
 				
 		string cwd;
 		//get current working directory 
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)	
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)	
 			
 			if (path.find("~") != -1) { //go to home directory
 				string homeDir;
@@ -796,7 +796,7 @@ int MothurOut::openInputFile(string file
 	try {
 			//get full path name
 			string completeFileName = getFullPathName(fileName);
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #ifdef USE_COMPRESSION
       // check for gzipped or bzipped file
       if (endsWith(completeFileName, ".gz") || endsWith(completeFileName, ".bz2")) {
@@ -842,7 +842,7 @@ int MothurOut::openInputFile(string file
 
 		//get full path name
 		string completeFileName = getFullPathName(fileName);
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #ifdef USE_COMPRESSION
   // check for gzipped or bzipped file
   if (endsWith(completeFileName, ".gz") || endsWith(completeFileName, ".bz2")) {
@@ -893,7 +893,7 @@ int MothurOut::renameFile(string oldName
 		int exist = openInputFile(newName, inTest, "");
 		inTest.close();
 		
-	#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)		
+	#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)		
 		if (exist == 0) { //you could open it so you want to delete it
 			string command = "rm " + newName;
 			system(command.c_str());
@@ -920,7 +920,7 @@ int MothurOut::openOutputFile(string fil
 	try { 
 	
 		string completeFileName = getFullPathName(fileName);
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #ifdef USE_COMPRESSION
     // check for gzipped file
     if (endsWith(completeFileName, ".gz") || endsWith(completeFileName, ".bz2")) {
@@ -996,7 +996,7 @@ string MothurOut::sortFile(string distFi
 
 		
 		//if you can, use the unix sort since its been optimized for years
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			string command = "sort -n -k +3 " + distFile + " -o " + outfile;
 			system(command.c_str());
 		#else //you are stuck with my best attempt...
--- mothur-1.22.2.orig/setdircommand.cpp
+++ mothur-1.22.2/setdircommand.cpp
@@ -114,7 +114,7 @@ int SetDirectoryCommand::execute(){
 		}else {
 			//add / to name if needed
 			string lastChar = output.substr(output.length()-1);
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if (lastChar != "/") { output += "/"; }
 			#else
 				if (lastChar != "\\") { output += "\\"; }	
@@ -146,7 +146,7 @@ int SetDirectoryCommand::execute(){
 		}else {
 			//add / to name if needed
 			string lastChar = input.substr(input.length()-1);
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if (lastChar != "/") { input += "/"; }
 			#else
 				if (lastChar != "\\") { input += "\\"; }	
@@ -188,7 +188,7 @@ int SetDirectoryCommand::execute(){
 		}else {
 			//add / to name if needed
 			string lastChar = tempdefault.substr(tempdefault.length()-1);
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if (lastChar != "/") { tempdefault += "/"; }
 			#else
 				if (lastChar != "\\") { tempdefault += "\\"; }	
--- mothur-1.22.2.orig/pintail.cpp
+++ mothur-1.22.2/pintail.cpp
@@ -74,7 +74,7 @@ int Pintail::doPrep() {
 	#ifdef USE_MPI
 		//do nothing
 	#else
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			//find breakup of templatefile for quantiles
 			if (processors == 1) {   templateLines.push_back(new linePair(0, templateSeqs.size()));  }
 			else { 
@@ -529,7 +529,7 @@ Sequence* Pintail::findPairs(Sequence* q
 //**************************************************************************************************
 void Pintail::createProcessesQuan() {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		vector<int> processIDS;
 				
--- mothur-1.22.2.orig/chimeraccodecommand.cpp
+++ mothur-1.22.2/chimeraccodecommand.cpp
@@ -397,7 +397,7 @@ int ChimeraCcodeCommand::execute(){
 			}	
 			
 			//break up file
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 										
 					numSeqs = driver(lines[0], outputFileName, fastaFileNames[s], accnosFileName);
@@ -521,7 +521,7 @@ int ChimeraCcodeCommand::driver(linePair
 			}
 			delete candidateSeq;
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = inFASTA.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -608,7 +608,7 @@ int ChimeraCcodeCommand::driverMPI(int s
 
 int ChimeraCcodeCommand::createProcesses(string outputFileName, string filename, string accnos) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 0;
 		int num = 0;
 		
--- mothur-1.22.2.orig/seqerrorcommand.cpp
+++ mothur-1.22.2/seqerrorcommand.cpp
@@ -293,7 +293,7 @@ int SeqErrorCommand::execute(){
 		if(qualFileName == "")	{	qLines = lines;	rLines = lines; } //fills with duds
 		
 		int numSeqs = 0;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		if(processors == 1){
 			numSeqs = driver(queryFileName, qualFileName, reportFileName, errorSummaryFileName, errorSeqFileName, errorChimeraFileName, lines[0], qLines[0], rLines[0]);
 		}else{
@@ -361,7 +361,7 @@ int SeqErrorCommand::createProcesses(str
 		processIDS.clear();
 		map<char, vector<int> >::iterator it;
 		int num = 0;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		
 		//loop through and create all the processes you want
 		while (process != processors) {
@@ -734,7 +734,7 @@ int SeqErrorCommand::driver(string filen
 			
 			index++;
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = queryFile.tellg();
 				if ((pos == -1) || (pos >= line.end)) { break; }
 			#else
@@ -1210,7 +1210,7 @@ void SeqErrorCommand::printQualityFR(vec
 
 int SeqErrorCommand::setLines(string filename, string qfilename, string rfilename, vector<unsigned long long>& fastaFilePos, vector<unsigned long long>& qfileFilePos, vector<unsigned long long>& rfileFilePos) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		//set file positions for fasta file
 		fastaFilePos = m->divideFile(filename, processors);
 		
--- mothur-1.22.2.orig/filterseqscommand.cpp
+++ mothur-1.22.2/filterseqscommand.cpp
@@ -425,7 +425,7 @@ int FilterSeqsCommand::filterSequences()
 			for (int i = 0; i < (positions.size()-1); i++) {
 				lines.push_back(new linePair(positions[i], positions[(i+1)]));
 			}	
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 					int numFastaSeqs = driverRunFilter(filter, filteredFasta, fastafileNames[s], lines[0]);
 					numSeqs += numFastaSeqs;
@@ -567,7 +567,7 @@ int FilterSeqsCommand::driverRunFilter(s
 				count++;
 			}
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = in.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -595,7 +595,7 @@ int FilterSeqsCommand::driverRunFilter(s
 
 int FilterSeqsCommand::createProcessesRunFilter(string F, string filename) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 0;
 		int num = 0;
 		processIDS.clear();
@@ -741,7 +741,7 @@ string FilterSeqsCommand::createFilter()
 		for (int i = 0; i < (positions.size()-1); i++) {
 			lines.push_back(new linePair(positions[i], positions[(i+1)]));
 		}	
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 					int numFastaSeqs = driverCreateFilter(F, fastafileNames[s], lines[0]);
 					numSeqs += numFastaSeqs;
@@ -876,7 +876,7 @@ int FilterSeqsCommand::driverCreateFilte
 					count++;
 			}
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = in.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -948,7 +948,7 @@ int FilterSeqsCommand::MPICreateFilter(i
 
 int FilterSeqsCommand::createProcessesCreateFilter(Filters& F, string filename) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		int num = 0;
 		processIDS.clear();
--- mothur-1.22.2.orig/trimflowscommand.h
+++ mothur-1.22.2/trimflowscommand.h
@@ -130,7 +130,7 @@ typedef struct trimFlowData {
 };
 
 /**************************************************************************************************/
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #else
 static DWORD WINAPI MyTrimFlowThreadFunction(LPVOID lpParam){ 
 	trimFlowData* pDataArray;
--- mothur-1.22.2.orig/distancecommand.h
+++ mothur-1.22.2/distancecommand.h
@@ -53,7 +53,7 @@ typedef struct distanceData {
 };
 
 /**************************************************************************************************/
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #else
 static DWORD WINAPI MyDistThreadFunction(LPVOID lpParam){ 
 	distanceData* pDataArray;
--- mothur-1.22.2.orig/indicatorcommand.cpp
+++ mothur-1.22.2/indicatorcommand.cpp
@@ -1120,7 +1120,7 @@ vector<float> IndicatorCommand::getPValu
 	try {
 		vector<float> pvalues;
 		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		if(processors == 1){
 			pvalues = driver(groupings, groupingsMap, num, indicatorValues, iters);
 			for (int i = 0; i < pvalues.size(); i++) { pvalues[i] /= (double)iters; }
@@ -1234,7 +1234,7 @@ vector<float> IndicatorCommand::getPValu
 	try {
 		vector<float> pvalues;
 		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		if(processors == 1){
 			pvalues = driver(groupings, groupingsMap, num, indicatorValues, iters);
 			for (int i = 0; i < pvalues.size(); i++) { pvalues[i] /= (double)iters; }
--- mothur-1.22.2.orig/seqsummarycommand.cpp
+++ mothur-1.22.2/seqsummarycommand.cpp
@@ -282,7 +282,7 @@ int SeqSummaryCommand::execute(){
 				MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
 #else
 			vector<unsigned long long> positions; 
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				positions = m->divideFile(fastafile, processors);
 				for (int i = 0; i < (positions.size()-1); i++) {	lines.push_back(new linePair(positions[i], positions[(i+1)]));	}
 			#else
@@ -429,7 +429,7 @@ int SeqSummaryCommand::driverCreateSumma
 				outSummary << current.getLongHomoPolymer() << '\t' << num << endl;
 			}
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = in.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -525,7 +525,7 @@ int SeqSummaryCommand::createProcessesCr
 		int num = 0;
 		processIDS.clear();
 		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		
 		//loop through and create all the processes you want
 		while (process != processors) {
--- mothur-1.22.2.orig/clustersplitcommand.cpp
+++ mothur-1.22.2/clustersplitcommand.cpp
@@ -559,7 +559,7 @@ int ClusterSplitCommand::execute(){
 		//sanity check
 		if (processors > distName.size()) { processors = distName.size(); }
 		
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 					listFileNames = cluster(distName, labels); //clusters individual files and returns names of list files
 				}else{
@@ -907,7 +907,7 @@ void ClusterSplitCommand::printData(List
 int ClusterSplitCommand::createProcesses(vector < vector < map<string, string> > > dividedNames){
 	try {
 	
-	#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+	#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 0;
 		int exitCommand = 1;
 		processIDS.clear();
--- mothur-1.22.2.orig/formatphylip.cpp
+++ mothur-1.22.2/formatphylip.cpp
@@ -96,7 +96,7 @@ int FormatPhylipMatrix::read(NameAssignm
 				string outfile = m->getRootName(tempFile) + "sorted.dist.temp";
 				
 				//use the unix sort 
-				#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+				#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 					string command = "sort -n " + tempFile + " -o " + outfile;
 					system(command.c_str());
 				#else //sort using windows sort
--- mothur-1.22.2.orig/mothur.h
+++ mothur-1.22.2/mothur.h
@@ -53,7 +53,7 @@
 #endif
 /***********************************************************************/
 
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 	#include <sys/wait.h>
 	#include <sys/time.h>
 	#include <sys/resource.h>
--- mothur-1.22.2.orig/engine.cpp
+++ mothur-1.22.2/engine.cpp
@@ -34,7 +34,7 @@ string Engine::findMothursPath(){
 		
 		//delimiting path char
 		char delim;
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			delim = ':';
 		#else
 			delim = ';';
@@ -56,7 +56,7 @@ string Engine::findMothursPath(){
 		
 		if (mothurPath != "") {
 			//add mothur so it looks like what argv would look like
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				mothurPath += "/mothur";
 			#else
 				mothurPath += "\\mothur";
@@ -71,7 +71,7 @@ string Engine::findMothursPath(){
 				//is this mothurs path?
 				ifstream in;
 				string tempIn = dirs[i];
-				#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+				#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 					tempIn += "/mothur";
 				#else
 					tempIn += "\\mothur";
@@ -217,7 +217,7 @@ bool InteractEngine::getInput(){
 string Engine::getCommand()  {
 	try {
 	
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			#ifdef USE_READLINE
 				char* nextCommand = NULL;
 				nextCommand = readline("mothur > ");
--- mothur-1.22.2.orig/bellerophon.cpp
+++ mothur-1.22.2/bellerophon.cpp
@@ -314,7 +314,7 @@ int Bellerophon::getChimeras() {
 	#else
 	
 		//divide breakpoints between processors
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			if(processors == 1){ 
 				lines.push_back(linePair(0, iters));	
 				
@@ -356,7 +356,7 @@ int Bellerophon::getChimeras() {
 
 int Bellerophon::createProcesses(vector<int> mid) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 0;
 		int exitCommand = 1;
 		vector<int> processIDS;
--- mothur-1.22.2.orig/aligncommand.h
+++ mothur-1.22.2/aligncommand.h
@@ -118,7 +118,7 @@ typedef struct alignData {
 };
 
 /**************************************************************************************************/
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #else
 static DWORD WINAPI MyAlignThreadFunction(LPVOID lpParam){ 
 	alignData* pDataArray;
--- mothur-1.22.2.orig/catchallcommand.cpp
+++ mothur-1.22.2/catchallcommand.cpp
@@ -176,7 +176,7 @@ int CatchAllCommand::execute() {
 		
 		savedOutputDir = outputDir;
 		string catchAllCommandExe = ""; 
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			catchAllCommandExe += "mono " + path + "CatchAllcmdL.exe ";
 			if (outputDir == "") { outputDir = "./"; } //force full pathname to be created for catchall, this is necessary because if catchall is in the path it will look for input file whereever the exe is and not the cwd.
 		#else
@@ -224,7 +224,7 @@ int CatchAllCommand::execute() {
 					
 						//create system command
 						string catchAllCommand = "";
-						#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+						#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 							catchAllCommand += catchAllCommandExe + filename + " " + outputPath + " 1";
 						#else
 							if (outputPath.length() > 0) { outputPath = outputPath.substr(0, outputPath.length()-1); }
@@ -269,7 +269,7 @@ int CatchAllCommand::execute() {
 						
 						//create system command
 						string catchAllCommand = "";
-						#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+						#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 							catchAllCommand += catchAllCommandExe + filename + " " + outputPath + " 1";
 						#else
 							if (outputPath.length() > 0) { outputPath = outputPath.substr(0, outputPath.length()-1); }
@@ -334,7 +334,7 @@ int CatchAllCommand::execute() {
 				
 				//create system command
 				string catchAllCommand = "";
-				#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+				#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 					catchAllCommand += catchAllCommandExe + filename + " " + outputPath + " 1";
 				#else
 					if (outputPath.length() > 0) { outputPath = outputPath.substr(0, outputPath.length()-1); }
--- mothur-1.22.2.orig/shhhercommand.cpp
+++ mothur-1.22.2/shhhercommand.cpp
@@ -1211,7 +1211,7 @@ void ShhherCommand::flowDistParentFork(s
 string ShhherCommand::createDistFile(int processors){
 	try{
 //////////////////////// until I figure out the shared memory issue //////////////////////		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #else
 		processors=1;
 #endif
@@ -1239,7 +1239,7 @@ string ShhherCommand::createDistFile(int
 				end[i] = int(sqrt(float(i+1)/float(processors)) * numUniques);
 			}
 			
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		
 			//loop through and create all the processes you want
 			while (process != processors) {
@@ -1556,7 +1556,7 @@ void ShhherCommand::fill(){
 void ShhherCommand::calcCentroids(){                          
 	try{
 		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		
 		if(processors == 1)	{
 			calcCentroidsDriver(0, numOTUs);		
@@ -1829,7 +1829,7 @@ void ShhherCommand::checkCentroids(){
 void ShhherCommand::calcNewDistances(){                          
 	try{
 		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 
 		if(processors == 1)	{
 			calcNewDistancesParent(0, numSeqs);		
--- mothur-1.22.2.orig/seqsummarycommand.h
+++ mothur-1.22.2/seqsummarycommand.h
@@ -96,7 +96,7 @@ typedef struct seqSumData {
 };
 
 /**************************************************************************************************/
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #else
 static DWORD WINAPI MySeqSumThreadFunction(LPVOID lpParam){ 
 	seqSumData* pDataArray;
--- mothur-1.22.2.orig/metastatscommand.cpp
+++ mothur-1.22.2/metastatscommand.cpp
@@ -233,7 +233,7 @@ int MetaStatsCommand::execute(){
 		if (numGroups == 2) { processors = 1; }
 		else if (numGroups < 2)	{ m->mothurOut("Not enough sets, I need at least 2 valid sets. Unable to complete command."); m->mothurOutEndLine(); m->control_pressed = true; }
 		
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			if(processors != 1){
 				int numPairs = namesOfGroupCombos.size();
 				int numPairsPerProcessor = numPairs / processors;
@@ -339,7 +339,7 @@ int MetaStatsCommand::execute(){
 int MetaStatsCommand::process(vector<SharedRAbundVector*>& thisLookUp){
 	try {
 		
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 					driver(0, namesOfGroupCombos.size(), thisLookUp);
 				}else{
--- mothur-1.22.2.orig/distancecommand.cpp
+++ mothur-1.22.2/distancecommand.cpp
@@ -380,7 +380,7 @@ int DistanceCommand::execute(){
 		MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
 #else		
 				
-	//#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+	//#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		//if you don't need to fork anything
 		if(processors == 1){
 			if (output != "square") {  driver(0, numSeqs, outputFile, cutoff); }
@@ -507,7 +507,7 @@ int DistanceCommand::execute(){
 /**************************************************************************************************/
 void DistanceCommand::createProcesses(string filename) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		processIDS.clear();
 		
@@ -1014,7 +1014,7 @@ int DistanceCommand::convertMatrix(strin
 		string outfile = m->getRootName(outputFile) + "sorted.dist.temp";
 		
 		//use the unix sort 
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			string command = "sort -n " + outputFile + " -o " + outfile;
 			system(command.c_str());
 		#else //sort using windows sort
@@ -1102,7 +1102,7 @@ int DistanceCommand::convertToLowerTrian
 		string outfile = m->getRootName(outputFile) + "sorted.dist.temp";
 		
 		//use the unix sort 
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			string command = "sort -n " + outputFile + " -o " + outfile;
 			system(command.c_str());
 		#else //sort using windows sort
--- mothur-1.22.2.orig/aligncommand.cpp
+++ mothur-1.22.2/aligncommand.cpp
@@ -248,7 +248,7 @@ AlignCommand::AlignCommand(string option
 			temp = validParameter.validFile(parameters, "save", false);			if (temp == "not found"){	temp = "f";				}
 			save = m->isTrue(temp); 
 			//this is so the threads can quickly load the reference data
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			#else
 				if (processors != 1) { save = true; }
 			#endif
@@ -427,7 +427,7 @@ int AlignCommand::execute(){
 #else
 
 			vector<unsigned long long> positions; 
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			positions = m->divideFile(candidateFileNames[s], processors);
 			for (int i = 0; i < (positions.size()-1); i++) {	lines.push_back(new linePair(positions[i], positions[(i+1)]));	}
 		#else
@@ -622,7 +622,7 @@ int AlignCommand::driver(linePair* fileP
 			}
 			delete candidateSeq;
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = inFASTA.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -831,7 +831,7 @@ int AlignCommand::createProcesses(string
 	try {
 		int num = 0;
 		processIDS.resize(0);
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		
 		//loop through and create all the processes you want
--- mothur-1.22.2.orig/pairwiseseqscommand.cpp
+++ mothur-1.22.2/pairwiseseqscommand.cpp
@@ -444,7 +444,7 @@ int PairwiseSeqsCommand::execute(){
 			MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case
 	#else		
 					
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			//if you don't need to fork anything
 			if(processors == 1){
 				if (output != "square") {  driver(0, numSeqs, outputFile, cutoff); }
@@ -535,7 +535,7 @@ int PairwiseSeqsCommand::execute(){
 /**************************************************************************************************/
 void PairwiseSeqsCommand::createProcesses(string filename) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		processIDS.clear();
 		
--- mothur-1.22.2.orig/rarefact.cpp
+++ mothur-1.22.2/rarefact.cpp
@@ -24,7 +24,7 @@ int Rarefact::getCurve(float percentFreq
 		if (percentFreq < 1.0) {  increment = numSeqs * percentFreq;  }
 		else { increment = percentFreq;  }	
 		
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 					driver(rcd, increment, nIters);	
 				}else{
@@ -114,7 +114,7 @@ int Rarefact::driver(RarefactionCurveDat
 
 int Rarefact::createProcesses(vector<int>& procIters, RarefactionCurveData* rcd, int increment) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		
 		vector<int> processIDS;
--- mothur-1.22.2.orig/matrixoutputcommand.cpp
+++ mothur-1.22.2/matrixoutputcommand.cpp
@@ -459,7 +459,7 @@ int MatrixOutputCommand::process(vector<
 		vector<SharedRAbundVector*> subset;
 		vector< vector<seqDist> > calcDists; calcDists.resize(matrixCalculators.size()); //one for each calc, this will be used to make .dist files
 		
-	#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+	#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		if(processors == 1){
 			driver(thisLookup, 0, numGroups, calcDists);
 		}else{
--- mothur-1.22.2.orig/unifracweightedcommand.cpp
+++ mothur-1.22.2/unifracweightedcommand.cpp
@@ -337,7 +337,7 @@ int UnifracWeightedCommand::execute() {
 				
 				lines.clear();
 				
-				#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+				#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 					if(processors != 1){
 						int numPairs = namesOfGroupCombos.size();
 						int numPairsPerProcessor = numPairs / processors;
@@ -356,7 +356,7 @@ int UnifracWeightedCommand::execute() {
 				//get scores for random trees
 				for (int j = 0; j < iters; j++) {
 				
-					#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+					#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 						if(processors == 1){
 							driver(T[i],  namesOfGroupCombos, 0, namesOfGroupCombos.size(),  rScores);
 						}else{
@@ -454,7 +454,7 @@ int UnifracWeightedCommand::execute() {
 
 int UnifracWeightedCommand::createProcesses(Tree* t, vector< vector<string> > namesOfGroupCombos, vector< vector<double> >& scores) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		vector<int> processIDS;
 		
--- mothur-1.22.2.orig/summarysharedcommand.cpp
+++ mothur-1.22.2/summarysharedcommand.cpp
@@ -511,7 +511,7 @@ int SummarySharedCommand::process(vector
 			vector< vector<seqDist> > calcDists;  //vector containing vectors that contains the summary results for each group compare
 			calcDists.resize(sumCalculators.size()); //one for each calc, this will be used to make .dist files
 				
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 					driver(thisLookup, 0, numGroups, sumFileName+".temp", sumAllFileName+".temp", calcDists);
 					m->appendFiles((sumFileName + ".temp"), sumFileName);
--- mothur-1.22.2.orig/chimeraslayercommand.cpp
+++ mothur-1.22.2/chimeraslayercommand.cpp
@@ -495,14 +495,14 @@ ChimeraSlayerCommand::ChimeraSlayerComma
 			else {
 				//add / to name if needed
 				string lastChar = blastlocation.substr(blastlocation.length()-1);
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if (lastChar != "/") { blastlocation += "/"; }
 #else
 				if (lastChar != "\\") { blastlocation += "\\"; }	
 #endif
 				blastlocation = m->getFullPathName(blastlocation);
 				string formatdbCommand = "";
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				formatdbCommand = blastlocation + "formatdb";	
 #else
 				formatdbCommand = blastlocation + "formatdb.exe";
@@ -515,7 +515,7 @@ ChimeraSlayerCommand::ChimeraSlayerComma
 				if(ableToOpen == 1) {	m->mothurOut("[ERROR]: " + formatdbCommand + " file does not exist. mothur requires formatdb.exe to run chimera.slayer."); m->mothurOutEndLine(); abort = true; }
 				
 				string blastCommand = "";
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				blastCommand = blastlocation + "megablast";	
 #else
 				blastCommand = blastlocation + "megablast.exe";
@@ -533,7 +533,7 @@ ChimeraSlayerCommand::ChimeraSlayerComma
 			if (hasGroup && (templatefile != "self")) { m->mothurOut("You have provided a group file and the reference parameter is not set to self. I am not sure what reference you are trying to use, aborting."); m->mothurOutEndLine(); abort=true; }
 
 			//until we resolve the issue 10-18-11
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #else
 			processors=1;
 #endif
@@ -644,7 +644,7 @@ int ChimeraSlayerCommand::execute(){
 				//create chimera here if you are mac or linux because fork will copy for you. Create in create processes instead if you are windows.
 				if (processors == 1) { templateSeqsLength = setupChimera(thisFastaName, thisPriority); }
 				else {
-					#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || USE_MPI
+					#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__) || USE_MPI
 						templateSeqsLength = setupChimera(thisFastaName, thisPriority);
 					#endif
 				}
@@ -657,7 +657,7 @@ int ChimeraSlayerCommand::execute(){
 			#else
 					//break up file
 					vector<unsigned long long> positions; 
-				#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+				#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 					positions = m->divideFile(thisFastaName, processors);
 					for (int i = 0; i < (positions.size()-1); i++) {	lines.push_back(new linePair(positions[i], positions[(i+1)]));	}
 				#else
@@ -687,7 +687,7 @@ int ChimeraSlayerCommand::execute(){
 				
 			#endif
 				
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || USE_MPI
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__) || USE_MPI
 				delete chimera;
 			#endif
 				
@@ -1197,7 +1197,7 @@ int ChimeraSlayerCommand::driver(linePai
 				count++;
 			}
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = inFASTA.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -1358,7 +1358,7 @@ int ChimeraSlayerCommand::createProcesse
 		int numNoParents = 0;
 		processIDS.clear();
 		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		//loop through and create all the processes you want
 		while (process != processors) {
 			int pid = fork();
--- mothur-1.22.2.orig/screenseqscommand.cpp
+++ mothur-1.22.2/screenseqscommand.cpp
@@ -390,7 +390,7 @@ int ScreenSeqsCommand::execute(){
 					
 #else
 						
-	#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+	#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			if(processors == 1){
 				numFastaSeqs = driver(lines[0], goodSeqFile, badAccnosFile, fastafile, badSeqNames);
 				
@@ -645,7 +645,7 @@ int ScreenSeqsCommand::getSummary(vector
 		}	
 		
 		int numSeqs = 0;
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			if(processors == 1){
 				numSeqs = driverCreateSummary(startPosition, endPosition, seqLength, ambigBases, longHomoPolymer, fastafile, lines[0]);
 			}else{
@@ -723,7 +723,7 @@ int ScreenSeqsCommand::driverCreateSumma
 				count++;
 			}
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = in.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -744,7 +744,7 @@ int ScreenSeqsCommand::driverCreateSumma
 /**************************************************************************************************/
 int ScreenSeqsCommand::createProcessesCreateSummary(vector<int>& startPosition, vector<int>& endPosition, vector<int>& seqLength, vector<int>& ambigBases, vector<int>& longHomoPolymer, string filename) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		int num = 0;
 		processIDS.clear();
@@ -1049,7 +1049,7 @@ int ScreenSeqsCommand::driver(linePair*
 			count++;
 			}
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = inFASTA.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -1156,7 +1156,7 @@ int ScreenSeqsCommand::driverMPI(int sta
 
 int ScreenSeqsCommand::createProcesses(string goodFileName, string badAccnos, string filename, set<string>& badSeqNames) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 0;
 		int num = 0;
 		
--- mothur-1.22.2.orig/chimeraslayercommand.h
+++ mothur-1.22.2/chimeraslayercommand.h
@@ -135,7 +135,7 @@ typedef struct slayerData {
 };
 
 /**************************************************************************************************/
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #else
 static DWORD WINAPI MySlayerThreadFunction(LPVOID lpParam){ 
 	slayerData* pDataArray;
--- mothur-1.22.2.orig/weighted.cpp
+++ mothur-1.22.2/weighted.cpp
@@ -34,7 +34,7 @@ EstOutput Weighted::getValues(Tree* t, i
 			}
 		}
 		
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			if(processors == 1){
 				data = driver(t, namesOfGroupCombos, 0, namesOfGroupCombos.size());
 			}else{
@@ -69,7 +69,7 @@ EstOutput Weighted::getValues(Tree* t, i
 
 EstOutput Weighted::createProcesses(Tree* t, vector< vector<string> > namesOfGroupCombos) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		vector<int> processIDS;
 		
--- mothur-1.22.2.orig/chimeracheckcommand.cpp
+++ mothur-1.22.2/chimeracheckcommand.cpp
@@ -431,7 +431,7 @@ int ChimeraCheckCommand::execute(){
 			}	
 			
 			//break up file
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 					numSeqs = driver(lines[0], outputFileName, fastaFileNames[i]);
 					
@@ -519,7 +519,7 @@ int ChimeraCheckCommand::driver(linePair
 			}
 			delete candidateSeq;
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = inFASTA.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -596,7 +596,7 @@ int ChimeraCheckCommand::driverMPI(int s
 
 int ChimeraCheckCommand::createProcesses(string outputFileName, string filename) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 0;
 		int num = 0;
 		
--- mothur-1.22.2.orig/blastdb.cpp
+++ mothur-1.22.2/blastdb.cpp
@@ -24,7 +24,7 @@ gapOpen(gO), gapExtend(gE), match(mm), m
 		int randNumber = rand();
 		//int randNumber = 12345;
 		string pid = "";
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		pid += getpid();	
 #else
 		pid += toString(threadID);	
@@ -42,7 +42,7 @@ gapOpen(gO), gapExtend(gE), match(mm), m
 			for (int i = 0; i < path.length(); i++) { tempPath[i] = tolower(path[i]); }
 			path = path.substr(0, (tempPath.find_last_of('m')));
 			
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			path += "blast/bin/";	
 #else
 			path += "blast\\bin\\";
@@ -51,7 +51,7 @@ gapOpen(gO), gapExtend(gE), match(mm), m
 		
 		
 		string formatdbCommand;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		formatdbCommand = path + "formatdb";	//	format the database, -o option gives us the ability
 #else
 		formatdbCommand = path + "formatdb.exe";
@@ -64,7 +64,7 @@ gapOpen(gO), gapExtend(gE), match(mm), m
 		if(ableToOpen == 1) {	m->mothurOut("[ERROR]: " + formatdbCommand + " file does not exist. mothur requires formatdb.exe."); m->mothurOutEndLine(); m->control_pressed = true; }
 		
 		string blastCommand;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		blastCommand = path + "blastall";	//	format the database, -o option gives us the ability
 #else
 		blastCommand = path + "blastall.exe";
@@ -80,7 +80,7 @@ gapOpen(gO), gapExtend(gE), match(mm), m
 		
 		
 		string megablastCommand;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		megablastCommand = path + "megablast";	//	format the database, -o option gives us the ability
 #else
 		megablastCommand = path + "megablast.exe";
@@ -114,7 +114,7 @@ BlastDB::BlastDB(string b, int tid) : Da
 			for (int i = 0; i < path.length(); i++) { tempPath[i] = tolower(path[i]); }
 			path = path.substr(0, (tempPath.find_last_of('m')));
 			
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			path += "blast/bin/";	
 #else
 			path += "blast\\bin\\";
@@ -123,7 +123,7 @@ BlastDB::BlastDB(string b, int tid) : Da
 		
 		int randNumber = rand();
 		string pid = "";
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		pid += getpid();	
 #else
 		pid += toString(threadID);	
@@ -134,7 +134,7 @@ BlastDB::BlastDB(string b, int tid) : Da
 		blastFileName = pid + toString(randNumber) + ".blast";
 		
 		string formatdbCommand;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		formatdbCommand = path + "formatdb";	//	format the database, -o option gives us the ability
 #else
 		formatdbCommand = path + "formatdb.exe";
@@ -149,7 +149,7 @@ BlastDB::BlastDB(string b, int tid) : Da
 		if(ableToOpen == 1) {	m->mothurOut("[ERROR]: " +  formatdbCommand + " file does not exist. mothur requires formatdb.exe."); m->mothurOutEndLine(); m->control_pressed = true; }
 		
 		string blastCommand;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		blastCommand = path + "blastall";	//	format the database, -o option gives us the ability
 #else
 		blastCommand = path + "blastall.exe";
@@ -165,7 +165,7 @@ BlastDB::BlastDB(string b, int tid) : Da
 		
 		
 		string megablastCommand;
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		megablastCommand = path + "megablast";	//	format the database, -o option gives us the ability
 #else
 		megablastCommand = path + "megablast.exe";
@@ -226,7 +226,7 @@ vector<int> BlastDB::findClosestSequence
 		//	long.  With this setting, it seems comparable in speed to the suffix tree approach.
 		
 		string blastCommand;
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		
 			blastCommand = path + "blastall -p blastn -d " + dbFileName + " -m 8 -W 28 -v " + toString(n) + " -b " + toString(n);
 			blastCommand += (" -i " + (queryFileName+pid+toString(randNumber)) + " -o " + blastFileName+pid+toString(randNumber));
@@ -289,7 +289,7 @@ vector<int> BlastDB::findClosestMegaBlas
 		//	long.  With this setting, it seems comparable in speed to the suffix tree approach.
 //7000004128189528left	0	100		66	0	0	1	66	61	126	1e-31	 131	
 		string blastCommand;
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			blastCommand = path + "megablast -e 1e-10 -d " + dbFileName + " -m 8 -b " + toString(n) + " -v " + toString(n); //-W 28 -p blastn
 			blastCommand += (" -i " + (queryFileName+pid+toString(randNumber)) + " -o " + blastFileName+pid+toString(randNumber));
 		#else
@@ -363,7 +363,7 @@ void BlastDB::generateDB() {
 			
 		string formatdbCommand;
 		
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			formatdbCommand = path + "formatdb -p F -o T -i " + dbFileName;	//	format the database, -o option gives us the ability
 		#else
 			//formatdbCommand = path + "blast\\bin\\formatdb -p F -o T -i " + dbFileName;	//	format the database, -o option gives us the ability
--- mothur-1.22.2.orig/unweighted.cpp
+++ mothur-1.22.2/unweighted.cpp
@@ -48,7 +48,7 @@ EstOutput Unweighted::getValues(Tree* t,
 			}
 		}
 
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			if(processors == 1){
 				data = driver(t, namesOfGroupCombos, 0, namesOfGroupCombos.size());
 			}else{
@@ -83,7 +83,7 @@ EstOutput Unweighted::getValues(Tree* t,
 
 EstOutput Unweighted::createProcesses(Tree* t, vector< vector<string> > namesOfGroupCombos) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		vector<int> processIDS;
 		
@@ -291,7 +291,7 @@ EstOutput Unweighted::getValues(Tree* t,
 			}
 		}
 
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			if(processors == 1){
 				data = driver(t, namesOfGroupCombos, 0, namesOfGroupCombos.size(), true);
 			}else{
@@ -326,7 +326,7 @@ EstOutput Unweighted::getValues(Tree* t,
 
 EstOutput Unweighted::createProcesses(Tree* t, vector< vector<string> > namesOfGroupCombos, bool usingGroups) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		vector<int> processIDS;
 		
--- mothur-1.22.2.orig/chimerapintailcommand.cpp
+++ mothur-1.22.2/chimerapintailcommand.cpp
@@ -493,7 +493,7 @@ int ChimeraPintailCommand::execute(){
 			}	
 			
 			//break up file
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 		
 					numSeqs = driver(lines[0], outputFileName, fastaFileNames[s], accnosFileName);
@@ -609,7 +609,7 @@ int ChimeraPintailCommand::driver(linePa
 			}
 			delete candidateSeq;
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				unsigned long long pos = inFASTA.tellg();
 				if ((pos == -1) || (pos >= filePos->end)) { break; }
 			#else
@@ -695,7 +695,7 @@ int ChimeraPintailCommand::driverMPI(int
 
 int ChimeraPintailCommand::createProcesses(string outputFileName, string filename, string accnos) {
 	try {
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 0;
 		int num = 0;
 		
--- mothur-1.22.2.orig/formatcolumn.cpp
+++ mothur-1.22.2/formatcolumn.cpp
@@ -82,7 +82,7 @@ int FormatColumnMatrix::read(NameAssignm
 		string outfile = m->getRootName(squareFile) + "sorted.dist.temp";
 		
 		//use the unix sort 
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			string command = "sort -n " + squareFile + " -o " + outfile;
 			system(command.c_str());
 		#else //sort using windows sort
--- mothur-1.22.2.orig/shhhercommand.h
+++ mothur-1.22.2/shhhercommand.h
@@ -160,7 +160,7 @@ typedef struct flowDistParentForkData {
 };
 
 /**************************************************************************************************/
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 #else
 static DWORD WINAPI MyflowDistParentForkThreadFunction(LPVOID lpParam){ 
 	flowDistParentForkData* pDataArray;
--- mothur-1.22.2.orig/mothur.cpp
+++ mothur-1.22.2/mothur.cpp
@@ -46,7 +46,7 @@ int main(int argc, char *argv[]){
 
 		m->setFileName(logFileName);
 		
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			system("clear");
 		#else
 			system("CLS");
@@ -57,7 +57,7 @@ int main(int argc, char *argv[]){
 		
 			//add / to name if needed
 			string lastChar = temp.substr(temp.length()-1);
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if (lastChar != "/") { temp += "/"; }
 			#else
 				if (lastChar != "\\") { temp += "\\"; }	
@@ -88,7 +88,7 @@ int main(int argc, char *argv[]){
 		
 		if (outputHeader)  {
 			//version
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				#if defined (__APPLE__) || (__MACH__)
 					m->mothurOutJustToLog("Mac version");
 					m->mothurOutEndLine(); m->mothurOutEndLine();
--- mothur-1.22.2.orig/phylodiversitycommand.cpp
+++ mothur-1.22.2/phylodiversitycommand.cpp
@@ -348,7 +348,7 @@ int PhyloDiversityCommand::execute(){
 				if (numSampledList.count(diversity[mGroups[j]].size()-1) == 0) {  numSampledList.insert(diversity[mGroups[j]].size()-1); }
 			}
 			
-			#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+			#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 				if(processors == 1){
 					driver(trees[i], diversity, sumDiversity, iters, increment, randomLeaf, numSampledList, outCollect, outSum, true);	
 				}else{
@@ -398,7 +398,7 @@ int PhyloDiversityCommand::execute(){
 //**********************************************************************************************************************
 int PhyloDiversityCommand::createProcesses(vector<int>& procIters, Tree* t, map< string, vector<float> >& div, map<string, vector<float> >& sumDiv, int numIters, int increment, vector<int>& randomLeaf, set<int>& numSampledList, ofstream& outCollect, ofstream& outSum){
 	try {
-		#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+		#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		
 		vector<int> processIDS;
--- mothur-1.22.2.orig/endiannessmacros.h
+++ mothur-1.22.2/endiannessmacros.h
@@ -125,7 +125,7 @@
  * out at over 2-times faster than iswap_int4 above.
  */
 #if 0
-#if defined(__linux__)
+#if defined(__GLIBC____)
 #    include <byteswap.h>
 #    undef iswap_int8
 #    undef iswap_int4
--- mothur-1.22.2.orig/trimflowscommand.cpp
+++ mothur-1.22.2/trimflowscommand.cpp
@@ -226,7 +226,7 @@ int TrimFlowsCommand::execute(){
 		}
 		
 		vector<unsigned long long> flowFilePos;
-	#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+	#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		flowFilePos = getFlowFileBreaks();
 		for (int i = 0; i < (flowFilePos.size()-1); i++) {
 			lines.push_back(new linePair(flowFilePos[i], flowFilePos[(i+1)]));
@@ -445,7 +445,7 @@ int TrimFlowsCommand::driverCreateTrim(s
 			//report progress
 			if((count) % 10000 == 0){	m->mothurOut(toString(count)); m->mothurOutEndLine();		}
 
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 			unsigned long long pos = flowFile.tellg();
 
 			if ((pos == -1) || (pos >= line->end)) { break; }
@@ -686,7 +686,7 @@ int TrimFlowsCommand::createProcessesCre
 		processIDS.clear();
 		int exitCommand = 1;
 		
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__GLIBC__)
 		int process = 1;
 		
 		//loop through and create all the processes you want
--- mothur-1.22.2.orig/uchime_src/myutils.cpp
+++ mothur-1.22.2/uchime_src/myutils.cpp
@@ -635,7 +635,7 @@ double GetMemUseBytes()
 		g_PeakMemUseBytes = Bytes;
 	return Bytes;
 	}
-#elif	linux || __linux__
+#elif	linux || __GLIBC____
 double GetMemUseBytes()
 	{
 	static char statm[64];

Reply to: