ports/71591: audio/funktrackergold segfaults
Simon Barner
barner at in.tum.de
Sat Sep 11 15:30:34 UTC 2004
The following reply was made to PR ports/71591; it has been noted by GNATS.
From: Simon Barner <barner at in.tum.de>
To: "Shawn K. Quinn" <skquinn at xevious.kicks-ass.net>
Cc: FreeBSD-gnats-submit at FreeBSD.org, markp at FreeBSD.org
Subject: Re: ports/71591: audio/funktrackergold segfaults
Date: Sat, 11 Sep 2004 17:29:05 +0200
[ Maintainer Cc:ed ]
The reason for this is that getenv ("OSTYPE") returns NULL.
The following patch works around the problem (IMHO, OS detection at build
time is fine when a program build from the FreeBSD ports collection)
----- snip -----
--- funkgold_misc.c.orig Sun Jun 21 08:26:46 1998
+++ funkgold_misc.c Sat Sep 11 17:17:44 2004
@@ -30,22 +29,7 @@
void get_environment(void)
{
- char *os_type = getenv("OSTYPE");
- register int x;
- char *os_tt[] = {
- "Linux",
- "FreeBSD"
- };
-
- for(x = 0;x < SO_TT_SIZE;x++)
- if(strcmp(os_tt[x],os_type) == 0)
- break;
- switch(x)
- {
- case 0: funk_info.funk_cpu_type = FKCPU_LINUX; break;
- case 1: funk_info.funk_cpu_type = FKCPU_FREEBSD; break;
- default: funk_info.funk_cpu_type = FKCPU_UNKNOWN; break;
- }
+ funk_info.funk_cpu_type = FKCPU_FREEBSD;
}
/***************************************************************************
----- snip -----
The more interesting point is why the following little C program fails
(please forgive me if I am overlooking something really stupid ;-)
(please note that this works fine for other environment variables like
HOME, PAGER, ...)
int main (int argc, char* argv[]) {
char *os = (char*)getenv ("OSTYPE");
printf ("%s\n", os);
return 0;
}
More information about the freebsd-ports-bugs
mailing list