Summary: | audio/funktrackergold segfaults | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | Shawn K. Quinn <skquinn> |
Component: | Individual Port(s) | Assignee: | markp <markp> |
Status: | Closed FIXED | ||
Severity: | Affects Only Me | ||
Priority: | Normal | ||
Version: | Latest | ||
Hardware: | Any | ||
OS: | Any |
Description
Shawn K. Quinn
2004-09-11 15:30:20 UTC
[ 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; } Responsible Changed From-To: freebsd-ports-bugs->markp Over to maintainer. State Changed From-To: open->closed Committed, thanks! |