This is the makefile i use:<br><br>ARCH = $(shell uname)<br>LEX=flex<br>YACC=bison -d -v -t<br>LEXLIB = -lfl<br>DLLLIB = -ldl<br>ifeq ($(ARCH),Darwin)<br>  DLLLIB =<br>endif<br>ifeq ($(ARCH),OpenBSD)<br>  DLLLIB =<br>endif<br>
<br>EXRINCLUDE=-I/export3/home/lmiranda/.usr/include/OpenEXR<br>EXRLIBDIR=-L/export3/home/lmiranda/.usr/lib<br><br>#EXRINCLUDE=-I/export3/home/lmiranda/Sources/par-pbrt/src/OpenEXR/include<br>#EXRLIBDIR=-L/export3/home/lmiranda/Sources/par-pbrt/src/OpenEXR/liblinux<br>
<br><br><br>#EXRLIBS=$(EXRLIBDIR) -Bstatic -lIex -lIlmImf -lImath -lIex -lHalf -Bdynamic -lz<br><br><br>ifeq ($(ARCH),Linux)<br>  EXRLIBS += -lpthread<br>endif<br><br><br>#CC=gcc<br>#CXX=g++<br>#CC=/opt/mpich-mx/bin/mpicc<br>
#CXX=/opt/mpich-mx/bin/mpicxx<br>#CC=/opt/mpich/intel/bin/mpiCC<br>#CXX=/opt/mpich/intel/bin/mpicxx<br>CC=/opt/mpich/gnu/bin/mpicc<br>CXX=/opt/mpich/gnu/bin/mpicxx<br><br>#CC=/export3/home/lmiranda/.opt/openmpi/bin/mpicc<br>
#CXX=/export3/home/lmiranda/.opt/openmpi/bin/mpicxx<br><br>#CC=/export3/home/lmiranda/.opt/mpich2/bin/mpicc<br>#CXX=/export3/home/lmiranda/.opt/mpich2/bin/mpicxx<br><br><br>#CC= /opt/mpich/myrinet/gnu/bin/mpicc <br>#CXX= /opt/mpich/myrinet/gnu/bin/mpicxx <br>
LD=$(CXX) $(OPT)<br><br><br>#v0.4######################################<br>#OPT=-O3 -fPIC <br>OPT=-O3 -fPIC -D__IC_SMS<br>#OPT=-O3 -fPIC -D__AU_L<br>#OPT=-O3 -fPIC -pthread -D__AU_L_2T<br>#OPT=-O3 -fPIC -pthread -D__AB_L_2T <br>
#OPT=-O3 -fPIC -D__AB_L<br>#OPT=-O3 -fPIC  -D__OTA<br><br>#v0.2.1 &amp; v0.3######################################<br>#OPT=-O3 -fPIC   -D__IC_SMS<br>#OPT=-O3 -fPIC -pthread -D__ALC <br>#OPT=-O3 -fPIC  -D__AU<br>#OPT=-O3 -fPIC -D__AU-L<br>
<br>#OPT=-O3 -fPIC  -D__AB<br>#OPT=-O3 -fPIC  -D__AB2<br>#OPT=-O3 -fPIC -D__AB-L<br><br><br>#OPT=-O3 -fPIC -D__AL<br>#OPT=-O3 -fPIC -D__AL2<br>#OPT=-O3 -fPIC -D__ALL<br><br>#v0.2##############################################<br>
#OPT=-O3 -fPIC   -D__AB1<br>#OPT=-O3 -fPIC   -lm -D__AB2<br>#OPT=-O3 -fPIC   -lm -D__AU<br>#OPT=-O3 -fPIC   -lm -D__AU2<br>#OPT=-O3 -fPIC   -lm -D__LR<br><br>#ORIGINAL#########################################<br>#OPT=-O3 -fPIC<br>
#OPT=-O3<br># OPT=-O2 -msse -mfpmath=sse<br>INCLUDE=-I. -Icore $(EXRINCLUDE)<br>WARN=-Wall<br>CWD=$(shell pwd)<br>CXXFLAGS=$(OPT) $(INCLUDE) $(WARN)<br>CCFLAGS=$(CXXFLAGS)<br>LIBS=$(LEXLIB) $(DLLLIB) $(EXRLIBDIR) $(EXRLIBS) -lm <br>
<br>SHARED_LDFLAGS = -shared<br>LRT_LDFLAGS=-rdynamic $(OPT)<br>#PBRTPRELINK=-Wl,--export-dynamic -Wl,-whole-archive<br>#PBRTPOSTLINK=-Wl,-no-whole-archive<br><br>ifeq ($(ARCH), Darwin)<br>  OS_VERSION = $(shell uname -r)<br>
  SHARED_LDFLAGS = -flat_namespace -undefined suppress -bundle -noprebind<br>  LRT_LDFLAGS=$(OPT) # -L/sw/lib<br>  INCLUDE += -I/sw/include<br>  WARN += -Wno-long-double<br>endif<br><br>ACCELERATORS = grid kdtree<br>CAMERAS      = environment orthographic perspective<br>
CORE         = api camera color dynload exrio film geometry light material mc \<br>               paramset parser primitive reflection sampling scene shape \<br>               texture timer transform transport util volume pbrtparse pbrtlex<br>
FILM         = image<br>FILTERS      = box gaussian mitchell sinc triangle<br>INTEGRATORS  = directlighting emission irradiancecache \<br>               path photonmap single whitted igi debug exphotonmap<br>LIGHTS       = area distant goniometric infinite point projection spot infinitesample<br>
MATERIALS    = bluepaint brushedmetal clay felt \<br>               glass matte mirror plastic primer \<br>               shinymetal skin substrate translucent uber<br>SAMPLERS     = bestcandidate lowdiscrepancy random stratified<br>
SHAPES       = cone cylinder disk heightfield hyperboloid loopsubdiv nurbs \<br>               paraboloid sphere trianglemesh<br>TEXTURES     = bilerp checkerboard constant dots fbm imagemap marble mix \<br>               scale uv windy wrinkled<br>
TONEMAPS     = contrast highcontrast maxwhite nonlinear<br>VOLUMES      = exponential homogeneous volumegrid<br><br>RENDERER     = pbrt<br><br><br><br>RENDERER_OBJS     := $(addprefix objs/, $(RENDERER:=.o) )<br>CORE_OBJS         := $(addprefix objs/, $(CORE:=.o) )<br>
CORE_LIB          := core/libpbrt.a<br><br>SHAPES_DSOS       := $(addprefix bin/, $(SHAPES:=.so))<br>MATERIALS_DSOS    := $(addprefix bin/, $(MATERIALS:=.so))<br>LIGHTS_DSOS       := $(addprefix bin/, $(LIGHTS:=.so))<br>INTEGRATORS_DSOS  := $(addprefix bin/, $(INTEGRATORS:=.so))<br>
VOLUMES_DSOS      := $(addprefix bin/, $(VOLUMES:=.so))<br>TEXTURES_DSOS     := $(addprefix bin/, $(TEXTURES:=.so))<br>ACCELERATORS_DSOS := $(addprefix bin/, $(ACCELERATORS:=.so))<br>CAMERAS_DSOS      := $(addprefix bin/, $(CAMERAS:=.so))<br>
FILTERS_DSOS      := $(addprefix bin/, $(FILTERS:=.so))<br>FILM_DSOS         := $(addprefix bin/, $(FILM:=.so))<br>TONEMAPS_DSOS     := $(addprefix bin/, $(TONEMAPS:=.so))<br>SAMPLERS_DSOS     := $(addprefix bin/, $(SAMPLERS:=.so))<br>
<br>SHAPES_OBJS       := $(addprefix objs/, $(SHAPES:=.o))<br>MATERIALS_OBJS    := $(addprefix objs/, $(MATERIALS:=.o))<br>LIGHTS_OBJS       := $(addprefix objs/, $(LIGHTS:=.o))<br>INTEGRATORS_OBJS  := $(addprefix objs/, $(INTEGRATORS:=.o))<br>
VOLUMES_OBJS      := $(addprefix objs/, $(VOLUMES:=.o))<br>TEXTURES_OBJS     := $(addprefix objs/, $(TEXTURES:=.o))<br>ACCELERATORS_OBJS := $(addprefix objs/, $(ACCELERATORS:=.o))<br>CAMERAS_OBJS      := $(addprefix objs/, $(CAMERAS:=.o))<br>
FILTERS_OBJS      := $(addprefix objs/, $(FILTERS:=.o))<br>FILM_OBJS         := $(addprefix objs/, $(FILM:=.o))<br>TONEMAPS_OBJS     := $(addprefix objs/, $(TONEMAPS:=.o))<br>SAMPLERS_OBJS     := $(addprefix objs/, $(SAMPLERS:=.o))<br>
<br>RENDERER_BINARY = bin/pbrt<br><br>CORE_HEADERFILES = api.h camera.h color.h dynload.h film.h geometry.h \<br>                  kdtree.h light.h pbrt.h material.h mc.h mipmap.h octree.h \<br>                  paramset.h primitive.h reflection.h sampling.h scene.h \<br>
                  shape.h texture.h timer.h tonemap.h transform.h transport.h \<br>                  volume.h <br><br>CORE_HEADERS := $(addprefix core/, $(CORE_HEADERFILES) )<br><br>.SECONDARY: $(SHAPES_OBJS) $(MATERIALS_OBJS) $(LIGHTS_OBJS) $(INTEGRATORS_OBJS) \<br>
            $(VOLUMES_OBJS) $(ACCELERATORS_OBJS) $(CAMERAS_OBJS) $(FILTERS_OBJS) \<br>            $(FILM_OBJS) $(TONEMAPS_OBJS) $(SAMPLERS_OBJS) $(TEXTURES_OBJS)<br><br>.PHONY: tools exrcheck<br><br>default: $(CORE_LIB) $(RENDERER_BINARY) $(INTEGRATORS_DSOS) $(VOLUMES_DSOS) $(FILM_DSOS) $(SHAPES_DSOS) $(MATERIALS_DSOS) $(LIGHTS_DSOS) $(ACCELERATORS_DSOS) $(CAMERAS_DSOS) $(SAMPLERS_DSOS) $(FILTERS_DSOS) $(TONEMAPS_DSOS) $(TEXTURES_DSOS) #tools<br>
<br>tools: $(CORE_LIB)<br>    (cd tools &amp;&amp; $(MAKE))<br><br>$(CORE_LIB): $(CORE_OBJS)<br>    @echo &quot;Building the core rendering library (libpbrt.a)&quot;<br>    @ar rcs $(CORE_LIB) $(CORE_OBJS)<br><br>bin/%.so: objs/%.o <br>
    @$(LD) $(SHARED_LDFLAGS) $^ -o $@<br><br>objs/%.o: renderer/%.cpp $(CORE_HEADERS)<br>    @echo &quot;Building the rendering binary (pbrt)&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: core/%.cpp $(CORE_HEADERS)<br>
    @echo &quot;Compiling $&lt;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: core/%.c $(CORE_HEADERS)<br>    @echo &quot;Compiling $&lt;&quot;<br>    @$(CC) $(CCFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: shapes/%.cpp $(CORE_HEADERS)<br>
    @echo &quot;Building Shape Plugin \&quot;$*\&quot;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: integrators/%.cpp $(CORE_HEADERS)<br>    @echo &quot;Building Integrator Plugin \&quot;$*\&quot;&quot;<br>
    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: volumes/%.cpp $(CORE_HEADERS)<br>    @echo &quot;Building Volume Plugin \&quot;$*\&quot;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: textures/%.cpp $(CORE_HEADERS)<br>
    @echo &quot;Building Texture Plugin \&quot;$*\&quot;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: materials/%.cpp $(CORE_HEADERS)<br>    @echo &quot;Building Material Plugin \&quot;$*\&quot;&quot;<br>
    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: lights/%.cpp $(CORE_HEADERS)<br>    @echo &quot;Building Light Plugin \&quot;$*\&quot;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: accelerators/%.cpp $(CORE_HEADERS)<br>
    @echo &quot;Building Accelerator Plugin \&quot;$*\&quot;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: cameras/%.cpp $(CORE_HEADERS)<br>    @echo &quot;Building Camera Plugin \&quot;$*\&quot;&quot;<br>
    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: filters/%.cpp $(CORE_HEADERS)<br>    @echo &quot;Building Filter Plugin \&quot;$*\&quot;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: tonemaps/%.cpp $(CORE_HEADERS)<br>
    @echo &quot;Building Tone Map Plugin \&quot;$*\&quot;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>objs/%.o: film/%.cpp $(CORE_HEADERS)<br>    @echo &quot;Building Film Plugin \&quot;$*\&quot;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br>
<br>objs/%.o: samplers/%.cpp $(CORE_HEADERS)<br>    @echo &quot;Building Sampler Plugin \&quot;$*\&quot;&quot;<br>    @$(CXX) $(CXXFLAGS) -o $@ -c $&lt;<br><br>core/pbrtlex.cpp: core/pbrtlex.l<br>    @echo &quot;Lex&#39;ing pbrtlex.l&quot;<br>
    @$(LEX) -o$@ core/pbrtlex.l<br><br>core/pbrtparse.h core/pbrtparse.cpp: core/pbrtparse.y<br>    @echo &quot;YACC&#39;ing pbrtparse.y&quot;<br>    @$(YACC) -o $@ core/pbrtparse.y<br>    @if [ -e core/pbrtparse.cpp.h ]; then /bin/mv core/pbrtparse.cpp.h core/pbrtparse.h; fi<br>
    @if [ -e core/pbrtparse.hpp ]; then /bin/mv core/pbrtparse.hpp core/pbrtparse.h; fi<br><br>$(RENDERER_BINARY): $(RENDERER_OBJS) $(CORE_LIB)<br>    @echo &quot;Linking $@&quot;<br>    @$(CXX) $(LRT_LDFLAGS) -o $@ $(RENDERER_OBJS) $(PBRTPRELINK) $(CORE_OBJS) $(PBRTPOSTLINK) $(LIBS)<br>
<br>clean:<br>    rm -f */*.o */*.so */*.a bin/pbrt core/pbrtlex.[ch]* core/pbrtparse.[ch]*<br>    (cd tools &amp;&amp; $(MAKE) clean)<br><br>objs/exrio.o: exrcheck<br><br>exrcheck:<br>    @echo -n Checking for EXR installation... <br>
    @$(CXX) $(CXXFLAGS) -o exrcheck exrcheck.cpp $(LIBS) || \<br>        (cat exrinstall.txt; exit 1)<br><br><br><br><br><br><br><div class="gmail_quote">2009/10/19 Mário Costa <span dir="ltr">&lt;<a href="mailto:mario.silva.costa@gmail.com">mario.silva.costa@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Maybe if you can post the build script or part of it where you<br>
compile, and have the flag and library definition e could try to<br>
identify what might be wrong...<br>
<br>
Regards,<br>
Mario<br>
<div><div></div><div class="h5"><br>
On Mon, Oct 19, 2009 at 2:40 PM, Luís Miranda &lt;<a href="mailto:luistm@gmail.com">luistm@gmail.com</a>&gt; wrote:<br>
&gt; Well, thanks for the suggestion, but the problem is still happening.<br>
&gt;<br>
&gt;<br>
&gt; Thanks<br>
&gt;<br>
&gt; 2009/10/19 Mário Costa &lt;<a href="mailto:mario.silva.costa@gmail.com">mario.silva.costa@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; The problem is that the irradiancecache.so library is dynamic, and you<br>
&gt;&gt; are using mpich static library version libpmpich++.a.<br>
&gt;&gt;<br>
&gt;&gt; Either you are compiling with -static with gnu, or you are specifying<br>
&gt;&gt; the static library libpmpich++.a.<br>
&gt;&gt;<br>
&gt;&gt; If that is the case remove the -static flag from gnu compiler in the<br>
&gt;&gt; byuild script, or use -lmpich++ instead of the library ...<br>
&gt;&gt;<br>
&gt;&gt; Hope this helps,<br>
&gt;&gt; Regards,<br>
&gt;&gt; Mário<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Oct 19, 2009 at 11:56 AM, Luís Miranda &lt;<a href="mailto:luistm@gmail.com">luistm@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; Hi<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m having this problem, when i try to compile my software in a rocks4.2<br>
&gt;&gt; &gt; cluster.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; /usr/bin/ld: /opt/mpich/myrinet/gnu/lib/libpmpich++.a(intercepts.o):<br>
&gt;&gt; &gt; relocation R_X86_64_32S against `a local symbol&#39; can not be used when<br>
&gt;&gt; &gt; making<br>
&gt;&gt; &gt; a shared object; recompile with -fPIC<br>
&gt;&gt; &gt; /opt/mpich/myrinet/gnu/lib/libpmpich++.a: could not read symbols: Bad<br>
&gt;&gt; &gt; value<br>
&gt;&gt; &gt; collect2: ld returned 1 exit status<br>
&gt;&gt; &gt; make: *** [bin/irradiancecache.so] Error 1<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; A solution to the problem, isto to compile the mpich with CFLAGS=-fPIC,<br>
&gt;&gt; &gt; but<br>
&gt;&gt; &gt; i can&#39;t do this, becouse i&#39;m not the cluster&#39;s admin.<br>
&gt;&gt; &gt; Anyone knows any other workaround to the problem?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thanks<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; mpich-discuss mailing list<br>
&gt;&gt; &gt; <a href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a><br>
&gt;&gt; &gt; <a href="https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Mário Costa<br>
&gt;&gt;<br>
&gt;&gt; Laboratório Nacional de Engenharia Civil<br>
&gt;&gt; LNEC.CTI.NTIEC<br>
&gt;&gt; Avenida do Brasil 101<br>
&gt;&gt; 1700-066 Lisboa, Portugal<br>
&gt;&gt; Tel : ++351 21 844 3911<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; mpich-discuss mailing list<br>
&gt;&gt; <a href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a><br>
&gt;&gt; <a href="https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; mpich-discuss mailing list<br>
&gt; <a href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a><br>
&gt; <a href="https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss</a><br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
mpich-discuss mailing list<br>
<a href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a><br>
<a href="https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss</a><br>
</div></div></blockquote></div><br>