Opened 6 years ago

Closed 6 years ago

#2047 closed defect (fixed)

GRASS doesn't build on FreeBSD

Reported by: lbartoletti Owned by: grass-dev@…
Priority: critical Milestone: 6.4.4
Component: Compiling Version: svn-releasebranch64
Keywords: FreeBSD Cc:
CPU: x86-64 Platform: Other Unix

Description

We have an error "va_list" into gisdefs.h

See the log and the FreshPorts?' info http://www.freshports.org/databases/grass

Change History (8)

comment:1 in reply to:  description ; Changed 6 years ago by glynn

Replying to lbartoletti:

/usr/include/stdarg.h:72:2: error: #error this file needs to be ported to your
compiler

and

Error: /usr/include/stdio.h:67: Syntax error at 'va_list'

So something producing errors in the ISO C headers. The log file doesn't make any mention of which directory is compiled when the errors occur, but it looks like lib/python/ctypes, in which case the problem is with the flags that ctypesgen is passing to the preprocessor.

This needs to be debugged by someone with access to the target system.

comment:2 in reply to:  1 Changed 6 years ago by mmetz

Replying to glynn:

Replying to lbartoletti:

Testing on FreeBSD 9.0.1 with gcc (GCC) 4.2.1 20070813 patched [FreeBSD]

So something producing errors in the ISO C headers. The log file doesn't make any mention of which directory is compiled when the errors occur, but it looks like lib/python/ctypes, in which case the problem is with the flags that ctypesgen is passing to the preprocessor.

/usr/include/stdarg.h:72:2: error: #error this file needs to be ported to your
compiler

/usr/include/stdarg.h is protected by __GNUCLIKE_BUILTIN_STDARG. Adding

CFLAGS="-D__GNUCLIKE_BUILTIN_STDARG"

to the call to configure and hacking lib/python/ctypes/Makefile#L57 by adding $(CFLAGS) removes this error message. I was not able to spot a relevant difference between compiling lib/gis (which succeeds) and lib/python/ctypes, apart from gcc vs. gcc -E. I was also not able to find any documentation on __GNUCLIKE_BUILTIN_STDARG?

and

Error: /usr/include/stdio.h:67: Syntax error at 'va_list'

I get ctypes Syntax errors also on GNU/Linux, they appear to be harmless. It seems that these syntax errors are either indeed harmless and there is a bug in the ctypes C code parser, or these syntax errors are real, violating some yet unknown standard.

This needs to be debugged by someone with access to the target system.

I will test on FreeBSD 9.1 next week.

BTW, the standard FreeBSD C compiler clang bombs out for me in lib/gis with

fatal error: error in backend: ran out of registers during register allocation

unless I set CFLAGS="-DGNUCLIKE_BUILTIN_STDARG".

I can test on different FreeBSD versions, but I am not familiar with the intricacies of compiling GNU software on FreeBSD, thus I would appreciate very much some hints in order to get GRASS working on FreeBSD, ideally *BSD. BTW, GRASS 7 with standard functionality (modules + GUI without GUI components requiring ctypes) is working fine for me on FreeBSD 9.1.

comment:3 Changed 6 years ago by lbartoletti

Seems to be only on Amd64 :

i386 log amd64 log

comment:4 Changed 6 years ago by neteler

Milestone: 6.4.36.4.4
Version: 6.4.3 RCssvn-releasebranch64

Could you try with a recent SVN snapshot?

http://grass.osgeo.org/grass64/source/snapshot/

(I am not sure if this report is actually a blocker for 6.4.4)

comment:5 in reply to:  4 Changed 6 years ago by neteler

Keywords: FreeBSD added
Priority: blockercritical

Replying to neteler:

Could you try with a recent SVN snapshot?

http://grass.osgeo.org/grass64/source/snapshot/

(I am not sure if this report is actually a blocker for 6.4.4)

No answer, downgrading to critical since only Amd64 might be affected.

comment:6 Changed 6 years ago by lbartoletti

I worked on porting the application. Although Grass works very well, we still have this error. https://redports.org/buildarchive/20140109062917-24686/

comment:7 in reply to:  6 Changed 6 years ago by neteler

Replying to lbartoletti:

I worked on porting the application. Although Grass works very well, we still have this error. https://redports.org/buildarchive/20140109062917-24686/

Since the link is expired, to you have a new one?

comment:8 Changed 6 years ago by lbartoletti

Resolution: fixed
Status: newclosed

Logs for FreeBSD 9.x 10.x 11.x i386 and Amd64

https://redports.org/buildarchive/20140428171001-71581/

Note: See TracTickets for help on using tickets.