[GRASS-dev] GRASS 7 not finding gettext

So here is a test that I ran for William that suggests that there are indeed 2 architectures compiled into gettext.

Michael


C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671(SHESC), 480-727-0709 (CSDC)
www: http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

Begin forwarded message:

From: Michael Barton <michael.barton@asu.edu>

Subject: Re: [SPAM?] Re: GRASS 7 not finding gettext

Date: April 3, 2014 at 5:16:02 PM MST

To: Kyngesburye William <kyngchaos@kyngchaos.com>

Cc: Markus Neteler <neteler@osgeo.org>

The following with my old installation and the new compilations of today:

/usr/local/lib/libintl.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libintl.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
/usr/local/lib/libintl.dylib (for architecture i386): Mach-O dynamically linked shared library i386

Michael


C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671(SHESC), 480-727-0709 (CSDC)
www: http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

On Apr 3, 2014, at 5:11 PM, William Kyngesburye kyngchaos@kyngchaos.com wrote:

what doe you get with

file /usr/local/lib/libintl.dylib

On Apr 3, 2014, at 7:08 PM, Michael Barton Michael.Barton@asu.edu wrote:

Hmm.

I had no problem with compiling GRASS when I last did it in February.

When I just now recompiled gettext (current version), I used the same setup I did before, except that I’ve limited it to OSX 10.7 and above.

====================

export MACOSX_DEPLOYMENT_TARGET=10.7

./configure --prefix=/usr/local --disable-dependency-tracking --disable-java --disable-libasprintf CFLAGS="-Os -arch x86_64 -arch i386 -fno-common -isysroot /Developer/SDKs/MacOSX10.7.sdk”

make

sudo make install

==================

MIchael


C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671(SHESC), 480-727-0709 (CSDC)
www: http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

On Apr 3, 2014, at 4:48 PM, William Kyngesburye kyngchaos@kyngchaos.com wrote:

It looks like your gettext/libintl is missing 32bit arch.

On Apr 3, 2014, at 4:16 PM, Michael Barton michael.barton@asu.edu wrote:

I don’t know what has changed, but I just recompiled gettext and redid configure. It still does not find gettext.

The configure flag I’m using is --with-nls

That’s still correct, right?

Here is the error:

checking whether to use NLS… yes
checking for gettext… no
checking for gettext in -lintl… no
configure: error: *** Unable to locate gettext() function.

Here is what seems to be the right place from configure.log

; return 0; }
configure:11940: checking whether to use FreeType
configure:11959: checking for location of FreeType includes
configure:11985: checking for ft2build.h
configure:11993: gcc -E -I/Library/Frameworks/FreeType.framework/unix/include/freetype2 -I/Library/Frameworks/FreeType.framework/unix/include conftest.c >/dev/null 2>conftest.out
configure:12027: checking for location of FreeType library
configure:12052: checking for FT_Init_FreeType in -lfreetype
configure:12069: gcc -o conftest -g -O2 -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Library/Frameworks/FreeType.framework/unix/lib -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk conftest.c -lfreetype 1>&5
configure:12110: checking whether to use NLS
configure:12130: checking for gettext
configure:12156: gcc -o conftest -g -O2 -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk conftest.c 1>&5
Undefined symbols for architecture i386:
“_gettext”, referenced from:
_main in conftest-qEjAiU.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure: failed program was:
#line 12133 “configure”
#include “confdefs.h”
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gettext(); below. /
#include <assert.h>
/
Override any gcc2 internal prototype to avoid an error. /
/
We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char gettext();

int main() {

/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_gettext) || defined (__stub___gettext)
choke me
#else
gettext();
#endif

; return 0; }
configure:12174: checking for gettext in -lintl
configure:12191: gcc -o conftest -g -O2 -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk conftest.c -lintl 1>&5
ld: library not found for -lintl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure: failed program was:
#line 12180 “configure”
#include “confdefs.h”
/* Override any gcc2 internal prototype to avoid an error. /
/
We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char gettext();

int main() {
gettext()
; return 0; }

Michael


C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671 (SHESC), 480-727-0709 (CSDC)
www: http://www.public.asu.edu/~cmbarton, http://csdc.asu.edu

On Apr 3, 2014, at 12:07 PM, Markus Neteler neteler@osgeo.org wrote:

On Thu, Apr 3, 2014 at 8:16 PM, Michael Barton Michael.Barton@asu.edu wrote:

I’m trying to compile GRASS 7 RB.

Something has changed with the configuration checks so that it no longer can
find my installation of gettext. It worked OK on 3 January 2014, the last
time I compiled GRASS 7.

It must be a local problem: the configure* files have not been
modified for 7+ months:
releasebranch_7_0 in grass/branches – GRASS GIS

See the “config.log” files for any errors.

Markus


William Kyngesburye <kyngchaosatkyngchaosdotcom>
http://www.kyngchaos.com/

“I ache, therefore I am. Or in my case - I am, therefore I ache.”

  • Marvin

William Kyngesburye <kyngchaosatkyngchaosdotcom>
http://www.kyngchaos.com/

“History is an illusion caused by the passage of time, and time is an illusion caused by the passage of history.”

  • Hitchhiker’s Guide to the Galaxy

I think you need to ignore the first error about the missing symbol for i386 - it's testing for gettext in the system library(s), not libintl, and that will fail on OS X, it's just odd that it didn't also report the error for x86_64.

The next error, where it can't find libintl, is more helpful. This is testing for libintl in the system library paths. I think in the past this has included /usr/local/lib, but it appears now it does not. Maybe a change in a recent Xcode/clang update.

I think there is a general lib and include flag for GRASS configure, you could try adding /usr/local/lib and /usr/local/include to that.

On Apr 4, 2014, at 12:00 PM, Michael Barton <michael.barton@asu.edu> wrote:

So here is a test that I ran for William that suggests that there are indeed 2 architectures compiled into gettext.

Michael
______________________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ 85287-2402
USA

voice:
480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671(SHESC), 480-727-0709 (CSDC)
www:
http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

Begin forwarded message:

From: Michael Barton <michael.barton@asu.edu>
Subject: Re: [SPAM?] Re: GRASS 7 not finding gettext
Date: April 3, 2014 at 5:16:02 PM MST
To: Kyngesburye William <kyngchaos@kyngchaos.com>
Cc: Markus Neteler <neteler@osgeo.org>

The following with my old installation and the new compilations of today:

/usr/local/lib/libintl.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libintl.dylib (for architecture x86_64):
Mach-O 64-bit dynamically linked shared library x86_64
/usr/local/lib/libintl.dylib (for architecture i386):
Mach-O dynamically linked shared library i386

Michael
______________________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671(SHESC), 480-727-0709 (CSDC)
www: http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

On Apr 3, 2014, at 5:11 PM, William Kyngesburye <kyngchaos@kyngchaos.com> wrote:

what doe you get with

file /usr/local/lib/libintl.dylib

On Apr 3, 2014, at 7:08 PM, Michael Barton <Michael.Barton@asu.edu> wrote:

Hmm.

I had no problem with compiling GRASS when I last did it in February.

When I just now recompiled gettext (current version), I used the same setup I did before, except that I’ve limited it to OSX 10.7 and above.

====================

export MACOSX_DEPLOYMENT_TARGET=10.7

./configure --prefix=/usr/local --disable-dependency-tracking --disable-java --disable-libasprintf CFLAGS="-Os -arch x86_64 -arch i386 -fno-common -isysroot /Developer/SDKs/MacOSX10.7.sdk”

make

sudo make install

==================

MIchael

______________________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671(SHESC), 480-727-0709 (CSDC)
www: http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

On Apr 3, 2014, at 4:48 PM, William Kyngesburye <kyngchaos@kyngchaos.com> wrote:

It looks like your gettext/libintl is missing 32bit arch.

On Apr 3, 2014, at 4:16 PM, Michael Barton <michael.barton@asu.edu> wrote:

I don’t know what has changed, but I just recompiled gettext and redid configure. It still does not find gettext.

The configure flag I’m using is --with-nls

That’s still correct, right?

Here is the error:

checking whether to use NLS... yes
checking for gettext... no
checking for gettext in -lintl... no
configure: error: *** Unable to locate gettext() function.

Here is what seems to be the right place from configure.log

; return 0; }
configure:11940: checking whether to use FreeType
configure:11959: checking for location of FreeType includes
configure:11985: checking for ft2build.h
configure:11993: gcc -E -I/Library/Frameworks/FreeType.framework/unix/include/freetype2 -I/Library/Frameworks/FreeType.framework/unix/include conftest.c >/dev/null 2>conftest.out
configure:12027: checking for location of FreeType library
configure:12052: checking for FT_Init_FreeType in -lfreetype
configure:12069: gcc -o conftest -g -O2 -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Library/Frameworks/FreeType.framework/unix/lib -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk conftest.c -lfreetype 1>&5
configure:12110: checking whether to use NLS
configure:12130: checking for gettext
configure:12156: gcc -o conftest -g -O2 -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk conftest.c 1>&5
Undefined symbols for architecture i386:
"_gettext", referenced from:
_main in conftest-qEjAiU.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure: failed program was:
#line 12133 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gettext(); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char gettext();

int main() {

/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_gettext) || defined (__stub___gettext)
choke me
#else
gettext();
#endif

; return 0; }
configure:12174: checking for gettext in -lintl
configure:12191: gcc -o conftest -g -O2 -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk conftest.c -lintl 1>&5
ld: library not found for -lintl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure: failed program was:
#line 12180 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char gettext();

int main() {
gettext()
; return 0; }

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"The beast is actively interested only in now, and, as it is always now and always shall be, there is an eternity of time for the accomplishment of objects."

- the wisdom of Tarzan

Would the general flags be --with-libs=/usr/local/lib --with-includes=/usr/local/include ??

Michael
____________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671 (SHESC), 480-727-0709 (CSDC)
www: http://www.public.asu.edu/~cmbarton, http://csdc.asu.edu

On Apr 4, 2014, at 7:57 PM, William Kyngesburye <woklist@kyngchaos.com> wrote:

I think you need to ignore the first error about the missing symbol for i386 - it's testing for gettext in the system library(s), not libintl, and that will fail on OS X, it's just odd that it didn't also report the error for x86_64.

The next error, where it can't find libintl, is more helpful. This is testing for libintl in the system library paths. I think in the past this has included /usr/local/lib, but it appears now it does not. Maybe a change in a recent Xcode/clang update.

I think there is a general lib and include flag for GRASS configure, you could try adding /usr/local/lib and /usr/local/include to that.

On Apr 4, 2014, at 12:00 PM, Michael Barton <michael.barton@asu.edu> wrote:

So here is a test that I ran for William that suggests that there are indeed 2 architectures compiled into gettext.

Michael
______________________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ 85287-2402
USA

voice:
480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671(SHESC), 480-727-0709 (CSDC)
www:
http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

Begin forwarded message:

From: Michael Barton <michael.barton@asu.edu>
Subject: Re: [SPAM?] Re: GRASS 7 not finding gettext
Date: April 3, 2014 at 5:16:02 PM MST
To: Kyngesburye William <kyngchaos@kyngchaos.com>
Cc: Markus Neteler <neteler@osgeo.org>

The following with my old installation and the new compilations of today:

/usr/local/lib/libintl.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libintl.dylib (for architecture x86_64):
Mach-O 64-bit dynamically linked shared library x86_64
/usr/local/lib/libintl.dylib (for architecture i386):
Mach-O dynamically linked shared library i386

Michael
______________________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671(SHESC), 480-727-0709 (CSDC)
www: http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

On Apr 3, 2014, at 5:11 PM, William Kyngesburye <kyngchaos@kyngchaos.com> wrote:

what doe you get with

file /usr/local/lib/libintl.dylib

On Apr 3, 2014, at 7:08 PM, Michael Barton <Michael.Barton@asu.edu> wrote:

Hmm.

I had no problem with compiling GRASS when I last did it in February.

When I just now recompiled gettext (current version), I used the same setup I did before, except that I’ve limited it to OSX 10.7 and above.

====================

export MACOSX_DEPLOYMENT_TARGET=10.7

./configure --prefix=/usr/local --disable-dependency-tracking --disable-java --disable-libasprintf CFLAGS="-Os -arch x86_64 -arch i386 -fno-common -isysroot /Developer/SDKs/MacOSX10.7.sdk”

make

sudo make install

==================

MIchael

______________________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671(SHESC), 480-727-0709 (CSDC)
www: http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

On Apr 3, 2014, at 4:48 PM, William Kyngesburye <kyngchaos@kyngchaos.com> wrote:

It looks like your gettext/libintl is missing 32bit arch.

On Apr 3, 2014, at 4:16 PM, Michael Barton <michael.barton@asu.edu> wrote:

I don’t know what has changed, but I just recompiled gettext and redid configure. It still does not find gettext.

The configure flag I’m using is --with-nls

That’s still correct, right?

Here is the error:

checking whether to use NLS... yes
checking for gettext... no
checking for gettext in -lintl... no
configure: error: *** Unable to locate gettext() function.

Here is what seems to be the right place from configure.log

; return 0; }
configure:11940: checking whether to use FreeType
configure:11959: checking for location of FreeType includes
configure:11985: checking for ft2build.h
configure:11993: gcc -E -I/Library/Frameworks/FreeType.framework/unix/include/freetype2 -I/Library/Frameworks/FreeType.framework/unix/include conftest.c >/dev/null 2>conftest.out
configure:12027: checking for location of FreeType library
configure:12052: checking for FT_Init_FreeType in -lfreetype
configure:12069: gcc -o conftest -g -O2 -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Library/Frameworks/FreeType.framework/unix/lib -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk conftest.c -lfreetype 1>&5
configure:12110: checking whether to use NLS
configure:12130: checking for gettext
configure:12156: gcc -o conftest -g -O2 -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk conftest.c 1>&5
Undefined symbols for architecture i386:
"_gettext", referenced from:
_main in conftest-qEjAiU.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure: failed program was:
#line 12133 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gettext(); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char gettext();

int main() {

/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_gettext) || defined (__stub___gettext)
choke me
#else
gettext();
#endif

; return 0; }
configure:12174: checking for gettext in -lintl
configure:12191: gcc -o conftest -g -O2 -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk conftest.c -lintl 1>&5
ld: library not found for -lintl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure: failed program was:
#line 12180 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char gettext();

int main() {
gettext()
; return 0; }

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"The beast is actively interested only in now, and, as it is always now and always shall be, there is an eternity of time for the accomplishment of objects."

- the wisdom of Tarzan

Michael Barton wrote:

Would the general flags be --with-libs=/usr/local/lib --with-includes=/usr/local/include ??

Yes.

--
Glynn Clements <glynn@gclements.plus.com>