Page 1 of 2

Compiling on Irix 6.5

Posted: 19.06.2003, 16:28
by flym
The configure script just die with this messages:
checking for GL/gl.h... yes
checking for glNewList in -lGL... no
checking for glNewList in -lMesaGL... no
configure: error: GL library was not found

I'm not the sysadm on that system, so I need to know what ask him. I can't believe that on an SGI machine there are no GL libraries.... :? then I would like to be a little more sure about the nature of the problem, before asking a stupid question. :oops:

Have you any hint?

Posted: 19.06.2003, 20:20
by jamarsa
I'm only guessing, but I think from your output that you have GL libraries (at least the gl.h is there), but they haven't the exactly functions Celestia is seeking for (glNewList). Maybe it has the libraries in nonstandard directories, or perhaps they have that function with another name (look in gl.h), and in the last case you will have to modify the source code... :roll:

Please post the last part of the config.log file, or send me to jamarsa@yahoo.es

Compiling on Irix 6.5

Posted: 20.06.2003, 15:38
by flym
Ok, GL are there, but their version is 1.2.3. Is it a too old version for Celestia? :(

Posted: 20.06.2003, 17:50
by jamarsa
I think it's enough, albeit you won't have some of the fanciest effects...

Posted: 20.06.2003, 18:27
by jamarsa
The relevant part in your config.log seems to be here:

Code: Select all

configure:20122: checking for glNewList in -lGL
configure:20153: gcc -o conftest -DNDEBUG -O2     -O2 -Wall -ffast-math
-fexpensive-optimizations -fomit-frame-pointer   conftest.c -lGL   -lSM
-lICE  -lm   -lXmu -lXi -lXext -lX11 -lm -lz  -lGL >&5
ld32: WARNING 84 : /usr/lib32/libGL.so is not used for resolving any
symbol.
ld32: WARNING 84 : /usr/lib32/libSM.so is not used for resolving any
symbol.
ld32: WARNING 84 : /usr/lib32/libm.so is not used for resolving any
symbol.
ld32: WARNING 84 : /usr/lib32/libXmu.so is not used for resolving any
symbol.
ld32: WARNING 84 : /usr/lib32/libXi.so is not used for resolving any
symbol.
ld32: FATAL   12 : Expecting n32 objects:
/eidos/cineca/prod/freeware/usr/freeware/bin/../lib/gcc-lib/mips-sgi-irix6.5/3.0.4/../../../libz.so
is o32.
collect2: ld returned 4 exit status

Somehow it complains about the format of the objects located into the libz library. It needs 'n32', and it finds 'o32'.
I think you should locate another instance of the libz library, or create it yourself
:? from the source code.

Look at here (Homepage): http://www.gzip.org/zlib/
And here (Irix specific help): http://freeware.sgi.com/Installable/libz-1.1.4.html

Posted: 20.06.2003, 18:49
by jamarsa
Ah!! and, BTW, it seems not to find the glNewList in the GL library, that's why it says:

ld32: WARNING 84 : /usr/lib32/libGL.so is not used for resolving any
symbol.

You still have to look at the gl.h include... :(

IRIX compiling?

Posted: 27.08.2003, 03:04
by abush
Has anyone got Celestia to compile and run on an IRIX machine?

Posted: 27.08.2003, 09:32
by Christophe
Maybe you could try to compile some other OpenGL program to see if the problem is with your system or with the Celestia build system.

Trying to compile on IRIX

Posted: 04.09.2003, 17:35
by abush
Hello,

Code: Select all

$ ./configure

was a no go for me too. However, it appeared to be complaining about the location of the jpeg library rather than OpenGL.

The sys-admin pointed out that it wasn't looking in all the right places for an IRIX machine and recommended:

Code: Select all

$ ./configure --enable-lib-suffix=32 --with-glut-libs=/usr/freeware/lib32 --with-glut-inc=/usr/freeware/include --with-gtk --with-gtk-prefix=/usr/freeware --with-extra-libs=/usr/freeware/lib32

which worked. The only problem now is getting it to compile:

Code: Select all

   make  all-recursive
Making all in src
Making all in celutil
Making all in celmath
Making all in cel3ds
Making all in celtxf
Making all in celengine
   if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I..   -I/usr/freeware/include/gtk-1.2 -I/usr/freeware/include/glib-1.2 -I/usr/freeware/lib32/glib/include  -D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -DNDEBUG -DNO_DEBUG -O2 -fno-exceptions -fno-check-new  -I/usr/freeware/include -O2 -Wall -ffast-math -fexpensive-optimizations -fomit-frame-pointer -I/usr/freeware/include/gtk-1.2 -I/usr/freeware/include/glib-1.2 -I/usr/freeware/lib32/glib/include  -I/usr/freeware/include/gnome-1.0 -DNEED_GNOMESUPPORT_H -I/usr/freeware/lib32/gnome-libs/include -I/usr/freeware/include/glib-1.2 -I/usr/freeware/lib32/glib/include -I/usr/freeware/include/orbit-1.0 -I/usr/freeware/include/gtk-1.2  -MT glext.o -MD -MP -MF ".deps/glext.Tpo" \
     -c -o glext.o `test -f 'glext.cpp' || echo './'`glext.cpp; \
   then mv ".deps/glext.Tpo" ".deps/glext.Po"; \
   else rm -f ".deps/glext.Tpo"; exit 1; \
   fi
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)


The sys-admin also pointed out:
There is a problem with OpenGL programs that will only compile under the
gcc/g++ compiler. The problem is that there is no driver for hardware graphics acceleration on SGI under gcc/g++. So OpenGL programs must use the Mesa emulation library, which is very slow if the graphics hardware is not
being used. Normally on an SGI, you would use the system compiler cc/CC to compile with the OpenGL libraries and with hardware graphics acceleration. But that compiler does not allow a lot of the code that gcc/g++ does allow. So the program may not compile at all under cc/CC.
You may need mesa and some kde or gnome libraries, they are not widely used on irix so may not be installed, but are available.

Anyone have any comments on this?

Re: Trying to compile on IRIX

Posted: 04.09.2003, 18:38
by Christophe
There is a problem with OpenGL programs that will only compile under the
gcc/g++ compiler. The problem is that there is no driver for hardware graphics acceleration on SGI under gcc/g++. So OpenGL programs must use the Mesa emulation library, which is very slow if the graphics hardware is not
being used. Normally on an SGI, you would use the system compiler cc/CC to compile with the OpenGL libraries and with hardware graphics acceleration. But that compiler does not allow a lot of the code that gcc/g++ does allow. So the program may not compile at all under cc/CC.


I think it's not even worth trying to get Celestia to compile with Mesa (i.e. software only OpenGL), you would get something unusable.

The problem probably lies with the fact that there is no standard C++ ABI. Which means that for example you can't use a C++ lib compiled with CC with a program build with g++. The hardware accelerated OpenGL lib under Irix is obviously compiled with CC (and no source available), so you can't link against it unless you use CC as well (and I'm not even mentioning licence issues here.)

So to be able to run Celestia under Irix you need to compile all your 'freeware' C++ libs (plain C is okay) and Celestia with CC. Not a small task probably...

The bright side of things is that there is a standard C++ ABI in the works, in another couple of years it might be possible to mix libraries build with different compilers... that is if propietary unices are still there by that time.

Compiling Celestia on IRIX with cc/CC

Posted: 11.09.2003, 17:50
by abush
Chris, You mentioned that there are some licence issues, can you elaborate/paste some links?

And, what kind of work needs to be done in order to get Celestia to compile under CC? Is there a way to check if all the other "freeware" apps where compiled with CC too?

How DOES one attempt to compile Celestia with CC? Is it just a matter of changing the Makefile portion:

Code: Select all

CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -DNDEBUG -O2     -I/usr/freeware/include -O2 -Wall -ffast-math -fexpensive-optimizations -\
fomit-frame-pointer -Wall -Wunused  -I/usr/freeware/include/gtk-1.2 -I/usr/freeware/include/glib-1.\
2 -I/usr/freeware/lib32/glib/include
CPP = gcc -E
CPPFLAGS =  -I/usr/freeware/include/gtk-1.2 -I/usr/freeware/include/glib-1.2 -I/usr/freeware/lib32/\
glib/include
CXX = g++
CXXCPP = g++ -E


To: (changes were gcc -> cc and g++ -> CC)

Code: Select all

CC = cc
CCDEPMODE = depmode=gcc3
CFLAGS = -DNDEBUG -O2     -I/usr/freeware/include -O2 -Wall -ffast-math -fexpensive-optimizations -\
fomit-frame-pointer -Wall -Wunused  -I/usr/freeware/include/gtk-1.2 -I/usr/freeware/include/glib-1.\
2 -I/usr/freeware/lib32/glib/include
CPP = cc -E
CPPFLAGS =  -I/usr/freeware/include/gtk-1.2 -I/usr/freeware/include/glib-1.2 -I/usr/freeware/lib32/\
glib/include
CXX = CC
CXXCPP = CC -E

???

Trying to compile with the above changes gives errors in glext.cpp:

Code: Select all

Making all in celengine
        if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I..   -I/usr/freeware/include/gtk-1.2 -I/usr/freeware/include/glib-1.2 -I/usr/freeware/lib32/glib/include  -D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -DNDEBUG -DNO_DEBUG -O2 -fno-exceptions -fno-check-new  -I/usr/freeware/include -O2 -Wall -ffast-math -fexpensive-optimizations -fomit-frame-pointer -I/usr/freeware/include/gtk-1.2 -I/usr/freeware/include/glib-1.2 -I/usr/freeware/lib32/glib/include  -I/usr/freeware/include/gnome-1.0 -DNEED_GNOMESUPPORT_H -I/usr/freeware/lib32/gnome-libs/include -I/usr/freeware/include/glib-1.2 -I/usr/freeware/lib32/glib/include -I/usr/freeware/include/orbit-1.0 -I/usr/freeware/include/gtk-1.2  -MT glext.o -MD -MP -MF ".deps/glext.Tpo" \
          -c -o glext.o `test -f 'glext.cpp' || echo './'`glext.cpp; \
        then mv ".deps/glext.Tpo" ".deps/glext.Po"; \
        else rm -f ".deps/glext.Tpo"; exit 1; \
        fi
glext.cpp: In function `void Alert(const char*, ...)':
glext.cpp:278: warning: unused parameter `const char*szFormat'
glext.cpp: In function `void InitExt_ARB_multitexture()':
glext.cpp:287: `glXGetProcAddressARB' undeclared (first use this function)
glext.cpp:287: (Each undeclared identifier is reported only once for each
   function it appears in.)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)

Re: Compiling Celestia on IRIX with cc/CC

Posted: 11.09.2003, 19:10
by Christophe
abush wrote:Chris, You mentioned that there are some licence issues, can you elaborate/paste some links?

I'm not a licence specialist, but since Celestia is GPL, I don't think you can legaly link it against a proprietary library. And you would need to do that to get hardware accelerated OpenGL. That being said I don't think any of the Celestia developers will take you to court for trying this.

abush wrote:And, what kind of work needs to be done in order to get Celestia to compile under CC? Is there a way to check if all the other "freeware" apps where compiled with CC too?

Since Celestia compiles both with VC++ and various versions of GCC, there is a good chance that only minor modifications are needed to get it to compile with CC.

Getting the GTK/Gnome version is probably feasible since these are C libraries. The KDE version is another matter, you would have to recompile all of QT/KDE with CC.

abush wrote:How DOES one attempt to compile Celestia with CC? Is it just a matter of changing the Makefile portion:


Don't tweak the makefile by hand, check the ./configure --help output:

Code: Select all

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

[...]

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
              headers in a nonstandard directory <include dir>
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  CPP         C preprocessor
  CXXCPP      C++ preprocessor

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Re: Compiling Celestia on IRIX with cc/CC

Posted: 25.10.2003, 13:40
by semi-fly
HI all! Sorry to post up on an older thread, been trying to build Celesia on irix 6.5.

Code: Select all

glext.cpp: In function `void Alert(const char*, ...)':
glext.cpp:278: warning: unused parameter `const char*szFormat'
glext.cpp: In function `void InitExt_ARB_multitexture()':
glext.cpp:287: `glXGetProcAddressARB' undeclared (first use this function)
glext.cpp:287: (Each undeclared identifier is reported only once for each
   function it appears in.)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)


As squeen pointed out, this error message is resolved by declaring 'glxGetProcAddressARB' in
glext.cpp:
extern void (* glXGetProcAddressARB (const GLubyte *procName))( void );

However, the build does fail on the object file for glext.cpp using gcc:

Code: Select all

ld32: ERROR 33 : Unresolved text symbol "glXGetProcAddressARB(unsigned char const*)" -- 1st referenced by ../celengine/libcelengine.a(glext.o).
Use linker option -v to see when and which objects, archives and dsos are loaded.
ld32: INFO 152: Output file removed because of error.
collect2: ld returned 2 exit status
gmake[4]: *** [celestia] Error 1
gmake[4]: Leaving directory `/usr/people/semi/code/games/celestia-1.3.0/src/celestia'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory `/usr/people/semi/code/games/celestia-1.3.0/src/celestia'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/usr/people/semi/code/games/celestia-1.3.0/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/people/semi/code/games/celestia-1.3.0'


I'm using the suggested configure flags of:

Code: Select all

./configure --enable-lib-suffix=32 --with-glut-libs=/usr/freeware/lib32 --with-glut-inc=/usr/freeware/include --with-gtk --with-gtk-prefix=/usr/freeware --with-extra-libs=/usr/freeware/lib32


Other then that, everything else appears to compile properly. We'll keep working on it (somthing to do with build order, maybe?). Thanks!

Re: Compiling Celestia on IRIX with cc/CC

Posted: 31.10.2003, 15:32
by scienceman
Christophe wrote:
abush wrote:Chris, You mentioned that there are some licence issues, can you elaborate/paste some links?

I'm not a licence specialist, but since Celestia is GPL, I don't think you can legaly link it against a proprietary library. And you would need to do that to get hardware accelerated OpenGL. That being said I don't think any of the Celestia developers will take you to court for trying this.



No license problems exist for linking GPL or other open source against anything, as far as I know. You can't distribute for profit anything that you wrote that includes viral-licensed code, or contrary to the provisions of such licenses; but this should not be a limitation.

Encourage work to continue on Irix compilation and building. It seems a bit crazy to have an openGL project not able to compile and link on SGI -- the original platform of GL and OpenGL development!

Re: Compiling Celestia on IRIX with cc/CC

Posted: 31.10.2003, 16:00
by Christophe
scienceman wrote:No license problems exist for linking GPL or other open source against anything, as far as I know.

The situation is far from being that simple.
See the GPL FAQ.

So it depends if you consider the OpenGL lib as part of the 'core' of the operating system or not.

scienceman wrote:You can't distribute for profit anything that you wrote that includes viral-licensed code, or contrary to the provisions of such licenses; but this should not be a limitation.

Of course you can distribute GPL code for profit. How would RedHat and others make a living otherwise?

scienceman wrote:Encourage work to continue on Irix compilation and building. It seems a bit crazy to have an openGL project not able to compile and link on SGI -- the original platform of GL and OpenGL development!


I'm all for it and I don't think the licence issues are real anyway, they could just make it difficult to distribute compiled packages.

I think the technical problems are a lot more important.

Re: Compiling Celestia on IRIX with cc/CC

Posted: 31.10.2003, 17:00
by scienceman
Christophe wrote:
scienceman wrote:You can't distribute for profit anything that you wrote that includes viral-licensed code, or contrary to the provisions of such licenses; but this should not be a limitation.

Of course you can distribute GPL code for profit. How would RedHat and others make a living otherwise?



OK, so I should have said "You can't distribute for profit anything that you wrote that includes viral-licensed code contrary to the provisions of such licenses." (What a difference a comma and two characters makes!) Of course I know that the open source model can be used for commercial purposes. You seemed to imply in your original post and above that no one can link on their own to closed-source packages. Nothing in the GPL prevents you from linking on your own to whatever you want. For this crowd, distributing instructions on linking should be as good as distributing the linked code itself, if that's what you are worried about.

Back to technical issues. I am not an Irix user, but one of the machines available here, with a terrific display, is an SGI. Why are the OpenGL calls not sufficiently standardized to allow linking to SGI's version?

Posted: 31.10.2003, 18:15
by selden
scienceman,

I don't have access to any SGI Irix systems, but...
Celestia does make use of some of the most recent OpenGL v1.4 features if they're available, so you need to make sure that the system actually has the most recently available OpenGL library installed.

I've been looking at SGI's IRIX 6.5.x Web pages and not looking good.
I can only hope that it doesn't reflect the software that's actually being shipped. The online manual is for OpenGL v1.1 and the OpenGL web page itself mentions OpenGL v1.2. :(

Re: Compiling Celestia on IRIX with cc/CC

Posted: 31.10.2003, 19:26
by Christophe
scienceman wrote:OK, so I should have said "You can't distribute for profit anything that you wrote that includes viral-licensed code contrary to the provisions of such licenses." (What a difference a comma and two characters makes!) Of course I know that the open source model can be used for commercial purposes.

OK, that's what I thought you meant, just clearing it up.

scienceman wrote:You seemed to imply in your original post and above that no one can link on their own to closed-source packages. Nothing in the GPL prevents you from linking on your own to whatever you want.


Well, re-reading this, yes, I think it does prevent you from doing it even if you're not redistributing it.

But once again nobody is going to sue you if you do.

SGI OSS license terms

Posted: 01.11.2003, 07:18
by scienceman
Hi Christophe,

Thanks for the reference. Here are a couple of others that may be relevant:

SGI's Open Source Software license terms (incl. additions apparently to go with the above):
http://oss.sgi.com/projects/GenInfo/NoticeExplan/

OpenGL Sample Implementation code:
http://oss.sgi.com/projects/ogl-sample/
(with many further links contained on the accompanying sidebar.)

The above links go primarily to SGI's contributions to the open source community that are aimed at deployment on Linux, Mac OS X, and Windows, and explain the difference between the software API and the hardware acceleration that must be present to take advantage of the API calls; the software is only loosely licensed, it seems, whereas the hardware acceleration is the part where the vendors have to work hard and conform to licenses for compatibility. Having said that, I am certain that I am still missing something about why it is hard to build Celestia on Irix. I will now simply hope that someone who knows the technical details of how to code in OpenGL on Irix will explain it (or explain it again). Sorry for the diversion.

Posted: 01.11.2003, 18:58
by Christophe
Maybe you could try asking on one of the SGI newsgroups?