File: node211.html

package info (click to toggle)
babel 0.10.2-1
  • links: PTS
  • area: contrib
  • in suites: sarge
  • size: 43,932 kB
  • ctags: 29,707
  • sloc: java: 74,695; ansic: 73,142; cpp: 40,649; sh: 18,411; f90: 10,062; fortran: 6,727; python: 6,406; makefile: 3,866; xml: 118; perl: 48
file content (141 lines) | stat: -rw-r--r-- 5,592 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Compilation Consistency is Key</TITLE>
<META NAME="description" CONTENT="Compilation Consistency is Key">
<META NAME="keywords" CONTENT="users_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="users_guide.css">

<LINK REL="previous" HREF="node210.html">
<LINK REL="up" HREF="node209.html">
<LINK REL="next" HREF="node212.html">
</HEAD>

<BODY >

<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html3864"
  HREF="node212.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html3858"
  HREF="node209.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html3854"
  HREF="node210.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html3860"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html3862"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html3865"
  HREF="node212.html">Appendices</A>
<B> Up:</B> <A NAME="tex2html3859"
  HREF="node209.html">Lessons Learned</A>
<B> Previous:</B> <A NAME="tex2html3855"
  HREF="node210.html">Introduction</A>
 &nbsp; <B>  <A NAME="tex2html3861"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html3863"
  HREF="node317.html">Index</A></B> 
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION04320000000000000000">
Compilation Consistency is Key</A>
</H1>

<P>
<SPAN  CLASS="textbf"><SPAN  CLASS="textit">Steve Smith, 24 September 2001</SPAN></SPAN>

<P>
Basically "be consistent" is the biggest lesson we found.  

<P>
When compiling C++ codes, you may have conflicts if you use different
compile options.  Under KCC we found -no_exceptions caused problems if
parts were compiled with/without the flag.  
There are most likely other compile flags which turn features on/off 
which would cause similar problems.  
This caused a core dump immediately when core file was
loaded.  This is somewhat obvious but if you are linking together several
different codes from a variety of developers you need to examine the
compile flags very carefully.  This problem is probably more likely with
C++ due to the greater number of code generation options (e.g. RTTI,
exceptions etc).

<P>
A much more subtle problem occurred when we had a C shared library which
called functions in a C++  shared library.  We initially used gcc to create
the C shared library and KCC to create the C++ shared library.  The
application would core dump when a dynamic cast was attempted.  This was
solved by using the "cc" compiler wrapper that is part of the KCC
distribution (which uses the native "cc").  So you need to be aware of not
only what is in your .so and how it is compiled but all the .so's that you
are using.

<P>
If you have several versions of a library, say during a debugging process,
make sure you are using the correct versions of things.  The "ldd" command
is very useful for making sure you getting the shared libraries that you
think you should be linking to.  Along these lines, keep your
LD_LIBRARY_PATH as simple as possible when debugging.

<P>
In retrospect this does not look like a large number of problems, but
figuring out the second problem took a long time since I focused on how the
C++ library was being created rather than where the real problem was being
introduced.  It wasn't until after I had exhausted a long list of other
potential conflicts that I started messing with the C library compilation.    

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html3864"
  HREF="node212.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html3858"
  HREF="node209.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html3854"
  HREF="node210.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html3860"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html3862"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html3865"
  HREF="node212.html">Appendices</A>
<B> Up:</B> <A NAME="tex2html3859"
  HREF="node209.html">Lessons Learned</A>
<B> Previous:</B> <A NAME="tex2html3855"
  HREF="node210.html">Introduction</A>
 &nbsp; <B>  <A NAME="tex2html3861"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html3863"
  HREF="node317.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
<br><br>babel-0.10.2<br>users_guide Last Modified 2005-03-23<br><br><a href="http://www.llnl.gov/CASC/components">http://www.llnl.gov/CASC/components</a><br><a href="mailto:components@llnl.gov">components@llnl.gov</a>
</ADDRESS>
</BODY>
</HTML>