]>
Commit | Line | Data |
---|---|---|
b2dad0e3 BK |
1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> |
2 | <HTML> | |
3 | <HEAD> | |
c0ed1dea | 4 | <META NAME="AUTHOR" CONTENT="pme@sources.redhat.com (Phil Edwards)"> |
d73b0bcf | 5 | <META NAME="KEYWORDS" CONTENT="libstdc++, libstdc++-v3, GCC, g++"> |
b2dad0e3 BK |
6 | <META NAME="DESCRIPTION" CONTENT="Configuration options for libstdc++-v3."> |
7 | <META NAME="GENERATOR" CONTENT="vi and eight fingers"> | |
8 | <TITLE>libstdc++-v3 configure options</TITLE> | |
b2dad0e3 | 9 | <LINK REL=StyleSheet HREF="lib3styles.css"> |
0214010c | 10 | <!-- $Id: configopts.html,v 1.4 2001/01/21 09:36:09 pme Exp $ --> |
b2dad0e3 BK |
11 | </HEAD> |
12 | <BODY> | |
13 | ||
14 | <H1 CLASS="centered"><A NAME="top">Interesting <TT>configure</TT> | |
15 | options</A></H1> | |
16 | ||
17 | <P>The latest version of this document is always available at | |
bfcafa4f PE |
18 | <A HREF="http://gcc.gnu.org/onlinedocs/libstdc++/configopts.html"> |
19 | http://gcc.gnu.org/onlinedocs/libstdc++/configopts.html</A>. | |
b2dad0e3 BK |
20 | </P> |
21 | ||
bfcafa4f | 22 | <P>To the <A HREF="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</A>. |
b2dad0e3 BK |
23 | |
24 | ||
25 | <!-- ####################################################### --> | |
26 | <HR> | |
27 | <P>Here are some of the non-obvious options to libstdc++'s configure. | |
28 | Keep in mind that | |
dcfa0bc8 | 29 | <!-- This SECnn should be the "Choosing Package Options" section. --> |
c0ed1dea | 30 | <A HREF="http://sources.redhat.com/autoconf/autoconf.html#SEC74">they |
b2dad0e3 | 31 | all have opposite forms as well</A> |
bfcafa4f PE |
32 | (enable/disable and with/without). The defaults are for current |
33 | development sources. | |
60ade935 PE |
34 | </P> |
35 | <P>The canonical way to find out the configure options that are | |
8901ac21 | 36 | available for a given set of libstdc++ sources is to go to the |
60ade935 | 37 | source directory and then type:<TT> ./configure --help</TT> |
8901ac21 | 38 | |
b2dad0e3 BK |
39 | <DL> |
40 | <DT><TT>--enable-multilib </TT>[default] | |
60ade935 PE |
41 | <DD><P>This is part of the generic multilib support for building cross |
42 | compilers. As such, targets like "powerpc-elf" will have | |
43 | libstdc++ built many different ways: "-msoft-float" | |
44 | and not, etc. A different libstdc++ will be built for each of | |
45 | the different multilib versions. This option is on by default. | |
b2dad0e3 BK |
46 | </P> |
47 | ||
48 | <DT><TT>--enable-debug </TT> | |
49 | <DD><P>The configure script will automatically detect the highest level | |
50 | of optimization that the compiler in use can use (certain | |
51 | versions of g++ will ICE if given the <TT>-O2</TT> option, but | |
52 | this is fixed in later versions of the compiler). This --enable | |
53 | flag will disable all optimizations and instruct the compiler to | |
54 | emit as much extra debugging information as it can, for use | |
55 | inside GDB. | |
56 | </P> | |
57 | ||
0505b046 | 58 | <DT><TT>--enable-cstdio </TT> |
36e40658 | 59 | <DD><P>This is an abbreviated form of <TT>'--enable-cstdio=stdio'</TT> |
b2dad0e3 BK |
60 | (described next). |
61 | </P> | |
62 | ||
63 | <DT><TT>--enable-cstdio=LIB </TT> | |
64 | <DD><P>Select a target-specific I/O package. As of libstdc++-v3 | |
36e40658 | 65 | snapshot 2.91, the choices are 'libio' to specify the GNU |
b2dad0e3 | 66 | I/O package (from |
c0ed1dea | 67 | <A HREF="http://sources.redhat.com/glibc/">glibc</A>, the |
0505b046 PE |
68 | GNU C library), or 'stdio' to use a generic "C" |
69 | abstraction. The default is 'stdio'. | |
b2dad0e3 BK |
70 | </P> |
71 | ||
0214010c BK |
72 | <DT><TT>--enable-clocale </TT> |
73 | <DD><P>This is an abbreviated form of <TT>'--enable-clocale=generic'</TT> | |
74 | (described next). | |
75 | </P> | |
76 | ||
77 | <DT><TT>--enable-clocale=MODEL </TT> | |
78 | <DD><P>Select a target-specific underlying locale package. The | |
79 | choices are 'gnu' to specify an X/Open (IEEE Std. 1003.1-200x) | |
80 | model based on langinfo/iconv (from <A | |
81 | HREF="http://sources.redhat.com/glibc/">glibc</A>, the GNU C | |
82 | library), or 'generic' to use a generic "C" | |
83 | abstraction which consists of "C" locale info. The default is | |
84 | 'generic'. | |
85 | </P> | |
86 | ||
8bd636c5 | 87 | <DT><TT>--enable-long-long </TT> |
b2dad0e3 BK |
88 | <DD><P>The "long long" type was introduced in C99. It is |
89 | provided as a GNU extension to C++98 in g++. This flag builds | |
36e40658 BK |
90 | support for "long long" into the library |
91 | (specialized templates and the like). This option is off by | |
0505b046 PE |
92 | default: if enabled, users will have to either use the |
93 | new-style "C" headers by default (ie cmath not math.h) | |
94 | or add appropriate compile-time flags to all compile lines to | |
95 | allow "C" visibility of this feature (on GNU/Linux, | |
96 | the flag is -D_ISOC99_SOURCE). | |
b2dad0e3 | 97 | </P> |
b2dad0e3 | 98 | |
e3123ab3 BK |
99 | <DT><TT>--enable-cheaders=OPTION </TT> |
100 | <DD><P>This allows the user to define what kind of C headers are | |
101 | used. Options are: c, c_std, and c_shadow. These correspond | |
102 | to the source directory's include/c, include/c_std, and | |
103 | include/c_shadow directories. | |
104 | The default is c_std. | |
99246c90 PE |
105 | </P> |
106 | ||
b2dad0e3 BK |
107 | <DT><TT>--enable-threads </TT> |
108 | <DD><P>This is an abbreviated form of <TT>'--enable-threads=yes'</TT> | |
109 | (described next). | |
110 | </P> | |
111 | ||
112 | <DT><TT>--enable-threads=LIB </TT> | |
36e40658 | 113 | <DD><P>Select a threading library. As of libstdc++-v3 snapshot 2.91, |
b2dad0e3 BK |
114 | the choices are: |
115 | 'yes' for some kind of default (hmmmmm); | |
116 | 'decosf1', 'irix', 'mach', 'os2', 'posix'/'pthreads' | |
117 | (same thing), | |
118 | 'solaris', 'win32', 'dce', or 'vxworks' to select the | |
119 | corresponding interface; | |
120 | and 'single', 'no', or 'none' for the null-case, | |
121 | single-threaded library. | |
122 | </P> | |
123 | <P>All of this is currently undergoing a lot of changes. As of | |
36e40658 | 124 | 2.91, 'single' and 'posix' are the only implemented |
0505b046 | 125 | models. Default is single. |
b2dad0e3 BK |
126 | </P> |
127 | ||
1ac41449 MH |
128 | <DT><TT>--enable-version-specific-runtime-libs </TT> |
129 | <DD><P>Specify that run-time libraries should be installed in the | |
130 | compiler-specific subdirectory (i.e., | |
131 | <TT>$(libdir)/gcc-lib/$(target_alias)/$(gcc_version)</TT>) | |
132 | instead of <TT>$(libdir)</TT>. This option is useful if you | |
133 | intend to use several versions of gcc in parallel. In addition, | |
134 | libstdc++'s include files will be installed in | |
135 | <TT>$(libdir)/gcc-lib/$(target_alias)/$(gcc_version)/include/g++</TT>, | |
136 | unless you also specify | |
137 | <TT>--with-gxx-include-dir=_dirname_</TT> during configuration. | |
1fd2f510 BK |
138 | </P> |
139 | ||
1ac41449 | 140 | |
60ade935 PE |
141 | <DT><TT>--with-gxx-include-dir=<include-files dir></TT> |
142 | <DD><P>Adds support for named libstdc++ include directory. For instance, | |
143 | the following puts all the libstdc++ headers into a directory | |
144 | called "2.97-20001008" instead of the usual | |
145 | "g++-v3". | |
146 | <PRE> | |
147 | --with-gxx-include-dir=/foo/H-x86-gcc-3-c-gxx-inc/include/2.97-20001008</PRE> | |
1fd2f510 BK |
148 | </P> |
149 | ||
dcfa0bc8 | 150 | <DT><TT>--enable-cxx-flags=FLAGS</TT> |
b2dad0e3 BK |
151 | <DD><P>With this option, you can pass a string of -f (functionality) |
152 | flags to the compiler to use when building libstdc++. FLAGS | |
153 | is a quoted string of options, like | |
154 | <PRE> | |
dcfa0bc8 | 155 | --enable-cxx-flags='-fsquangle -fvtable-gc -ansi'</PRE> |
b2dad0e3 BK |
156 | Note that the flags don't necessarily have to all be -f flags, |
157 | as shown, but usually those are the ones that will make sense | |
158 | for experimentation and configure-time overriding. | |
159 | </P> | |
dcfa0bc8 | 160 | <P>The advantage of --enable-cxx-flags over setting CXXFLAGS in |
b2dad0e3 BK |
161 | the 'make' environment is that, if libgcc is automatically |
162 | rebuilt, the same flags will be used when compiling those files | |
163 | as well, so that everything matches. | |
164 | </P> | |
165 | <P>Fun flags to try might include combinations of | |
166 | <PRE> | |
167 | -fstrict-aliasing | |
168 | -fnew-abi | |
169 | -fnew-exceptions | |
170 | -ffunction-sections | |
171 | -fvtable-gc</PRE> | |
172 | and -fno- forms of the same. Tell us (the mailing list) if | |
173 | you discover more! | |
174 | </P> | |
58fdec72 | 175 | |
36e40658 BK |
176 | <DT><TT>--enable-c-mbchar </TT>[default] |
177 | <DD><P>Certain template specializations are required for wide | |
178 | character conversion support. This is tricky and currently | |
179 | changing rapidly, and can cause problems on new platforms. | |
180 | Disabling wide character specializations is useful for initial | |
181 | porting steps, but builds only a subset of what is required by | |
182 | ISO. Default is on, but the <TT>--enable-c_stdio=stdio </TT> | |
183 | option currently turns it off. | |
58fdec72 | 184 | </P> |
b2dad0e3 BK |
185 | </DL> |
186 | </P> | |
c0ed1dea | 187 | <P>Return <A HREF="#top">to the top of the page</A> or |
bfcafa4f | 188 | <A HREF="http://gcc.gnu.org/libstdc++/">to the homepage</A>. |
b2dad0e3 BK |
189 | </P> |
190 | ||
191 | ||
192 | <!-- ####################################################### --> | |
193 | ||
194 | <HR> | |
195 | <P CLASS="fineprint"><EM> | |
0214010c | 196 | $Id: configopts.html,v 1.4 2001/01/21 09:36:09 pme Exp $ |
b2dad0e3 BK |
197 | </EM></P> |
198 | ||
199 | ||
200 | </BODY> | |
201 | </HTML> |