OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libstdc++-v3/] [doc/] [xml/] [manual/] [configure.xml] - Blame information for rev 750

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 742 jeremybenn
2
         xml:id="manual.intro.setup.configure" xreflabel="Configuring">
3
4
 
5
Configure
6
  
7
    
8
      ISO C++
9
    
10
    
11
      configure
12
    
13
    
14
      options
15
    
16
  
17
18
 
19
 
20
 
21
22
  When configuring libstdc++, you'll have to configure the entire
23
  gccsrcdir directory. Consider using the
24
  toplevel gcc configuration option
25
  --enable-languages=c++, which saves time by only
26
  building the C++ toolchain.
27
28
 
29
30
  Here are all of the configure options specific to libstdc++.  Keep
31
  in mind that
32
   
33
   they
34
   all have opposite forms as well (enable/disable and
35
   with/without).  The defaults are for the current
36
   development sources, which may be different than those
37
   for released versions.
38
39
The canonical way to find out the configure options that are
40
   available for a given set of libstdc++ sources is to go to the
41
   source directory and then type:./configure --help.
42
43
 
44
45
 --enable-multilib[default]
46
 This is part of the generic multilib support for building cross
47
        compilers.  As such, targets like "powerpc-elf" will have
48
        libstdc++ built many different ways:  "-msoft-float"
49
        and not, etc.  A different libstdc++ will be built for each of
50
        the different multilib versions.  This option is on by default.
51
     
52
 
53
 
54
 --enable-sjlj-exceptions
55
 Forces old, set-jump/long-jump exception handling model.  If
56
        at all possible, the new, frame unwinding exception handling routines
57
        should be used instead, as they significantly reduce both
58
        runtime memory usage and executable size. This option can
59
        change the library ABI.
60
     
61
 
62
 
63
 --enable-version-specific-runtime-libs
64
 Specify that run-time libraries should be installed in the
65
        compiler-specific subdirectory (i.e.,
66
        ${libdir}/gcc-lib/${target_alias}/${gcc_version})
67
        instead of ${libdir}.  This option is useful if you
68
        intend to use several versions of gcc in parallel.  In addition,
69
        libstdc++'s include files will be installed in
70
        ${libdir}/gcc-lib/${target_alias}/${gcc_version}/include/g++,
71
        unless you also specify
72
       --with-gxx-include-dir=dirname during configuration.
73
     
74
 
75
 
76
 --with-gxx-include-dir=<include-files dir>
77
 Adds support for named libstdc++ include directory.  For instance,
78
        the following puts all the libstdc++ headers into a directory
79
        called "4.4-20090404" instead of the usual
80
        "c++/(version)".
81
     
82
        
83
   --with-gxx-include-dir=/foo/H-x86-gcc-3-c-gxx-inc/include/4.4-20090404 
84
 
85
 --enable-cstdio
86
 This is an abbreviated form of '--enable-cstdio=stdio'
87
        (described next).
88
     
89
 
90
 
91
 --enable-cstdio=OPTION
92
 Select a target-specific I/O package. At the moment, the only
93
        choice is to use 'stdio', a generic "C" abstraction.
94
        The default is 'stdio'. This option can change the library ABI.
95
     
96
 
97
 
98
 --enable-clocale
99
 This is an abbreviated form of '--enable-clocale=generic'
100
        (described next).
101
     
102
 
103
 
104
 --enable-clocale=OPTION
105
 Select a target-specific underlying locale package.  The
106
        choices are 'ieee_1003.1-2001' to specify an X/Open, Standard Unix
107
        (IEEE Std. 1003.1-2001) model based on langinfo/iconv/catgets,
108
        'gnu' to specify a model based on functionality from the GNU C
109
        library (langinfo/iconv/gettext) (from glibc, the GNU C
110
        library), or 'generic' to use a generic "C"
111
        abstraction which consists of "C" locale info.
112
     
113
 
114
     If not explicitly specified, the configure proccess tries
115
      to guess the most suitable package from the choices above. The
116
      default is 'generic'. On glibc-based systems of sufficient
117
      vintage (2.3 and newer), 'gnu' is automatically selected. This option
118
      can change the library ABI.
119
     
120
 
121
 
122
 --enable-libstdcxx-allocator
123
 This is an abbreviated form of
124
        '--enable-libstdcxx-allocator=auto' (described
125
        next).
126
     
127
 
128
 
129
 --enable-libstdcxx-allocator=OPTION  
130
 Select a target-specific underlying std::allocator.  The
131
        choices are 'new' to specify a wrapper for new, 'malloc' to
132
        specify a wrapper for malloc, 'mt' for a fixed power of two allocator,
133
        'pool' for the SGI pooled allocator or 'bitmap' for a bitmap allocator.
134
        See this page for more information on allocator
135
        extensions. This option
136
        can change the library ABI.
137
     
138
 
139
 
140
 --enable-cheaders=OPTION
141
 This allows the user to define the approach taken for C header
142
        compatibility with C++. Options are c, c_std, and c_global.
143
        These correspond to the source directory's include/c,
144
        include/c_std, and include/c_global, and may also include
145
        include/c_compatibility.  The default is 'c_global'.
146
     
147
 
148
 
149
 --enable-threads
150
 This is an abbreviated form of '--enable-threads=yes'
151
        (described next).
152
     
153
 
154
 
155
 --enable-threads=OPTION
156
 Select a threading library.  A full description is
157
        given in the
158
        general compiler
159
        configuration instructions. This option can change the
160
        library ABI.
161
     
162
 
163
 
164
 --enable-libstdcxx-threads
165
 Enable C++11 threads support.  If not explicitly specified,
166
        the  configure process enables it if possible.  It defaults to 'off'
167
        on Solaris 8 and 9, where it would break symbol versioning.   This
168
        option can change the library ABI.
169
     
170
 
171
 
172
 --enable-libstdcxx-time
173
 This is an abbreviated form of
174
        '--enable-libstdcxx-time=yes'(described next).
175
     
176
 
177
 
178
 --enable-libstdcxx-time=OPTION
179
 Enables link-type checks for the availability of the
180
        clock_gettime clocks, used in the implementation of [time.clock],
181
        and of the nanosleep and sched_yield functions, used in the
182
        implementation of [thread.thread.this] of the 2011 ISO C++ standard.
183
        The choice OPTION=yes checks for the availability of the facilities
184
        in libc and libposix4.  In case of need the latter is also linked
185
        to libstdc++ as part of the build process.  OPTION=rt also searches
186
        (and, in case, links) librt.   Note that the latter is not always
187
        desirable because, in glibc, for example, in turn it triggers the
188
        linking of libpthread too, which activates locking, a large overhead
189
        for single-thread programs.  OPTION=no skips the tests completely.
190
        The default is OPTION=no.
191
    
192
 
193
 
194
 --enable-libstdcxx-debug
195
 Build separate debug libraries in addition to what is normally built.
196
        By default, the debug libraries are compiled with
197
         CXXFLAGS='-g3 -O0 -fno-inline'
198
        , are installed in ${libdir}/debug, and have the
199
        same names and versioning information as the non-debug
200
        libraries. This option is off by default.
201
     
202
     Note this make command, executed in
203
        the build directory, will do much the same thing, without the
204
        configuration difference and without building everything twice:
205
        make CXXFLAGS='-g3 -O0 -fno-inline' all
206
     
207
 
208
 
209
 --enable-libstdcxx-debug-flags=FLAGS
210
 
211
 This option is only valid when  --enable-debug 
212
        is also specified, and applies to the debug builds only. With
213
        this option, you can pass a specific string of flags to the
214
        compiler to use when building the debug versions of libstdc++.
215
        FLAGS is a quoted string of options, like
216
     
217
        
218
  --enable-libstdcxx-debug-flags='-g3 -O1 -fno-inline'
219
 
220
 
221
 --enable-cxx-flags=FLAGS
222
 With this option, you can pass a string of -f (functionality)
223
        flags to the compiler to use when building libstdc++. This
224
        option can change the library ABI. FLAGS is a quoted string of
225
        options, like
226
     
227
        
228
  --enable-cxx-flags='-fvtable-gc -fomit-frame-pointer -ansi'
229
     
230
        Note that the flags don't necessarily have to all be -f flags,
231
        as shown, but usually those are the ones that will make sense
232
        for experimentation and configure-time overriding.
233
     
234
     The advantage of --enable-cxx-flags over setting CXXFLAGS in
235
        the 'make' environment is that, if files are automatically
236
        rebuilt, the same flags will be used when compiling those files
237
        as well, so that everything matches.
238
     
239
     Fun flags to try might include combinations of
240
     
241
        
242
  -fstrict-aliasing
243
  -fno-exceptions
244
  -ffunction-sections
245
  -fvtable-gc
246
     and opposite forms (-fno-) of the same.  Tell us (the libstdc++
247
        mailing list) if you discover more!
248
     
249
 
250
 
251
 --enable-c99
252
 The "long long" type was introduced in C99, along
253
        with many other functions for wide characters, and math
254
        classification macros, etc.  If enabled, all C99 functions not
255
        specified by the C++ standard will be put into namespace
256
        __gnu_cxx, and then all these names will
257
        be injected into namespace std, so that C99 functions can be
258
        used "as if" they were in the C++ standard (as they
259
        will eventually be in some future revision of the standard,
260
        without a doubt).  By default, C99 support is on, assuming the
261
        configure probes find all the necessary functions and bits
262
        necessary. This option can change the library ABI.
263
    
264
 
265
 
266
 --enable-wchar_t[default]
267
 Template specializations for the "wchar_t" type are
268
        required for wide character conversion support.  Disabling
269
        wide character specializations may be expedient for initial
270
        porting efforts, but builds only a subset of what is required by
271
        ISO, and is not recommended.  By default, this option is on.
272
        This option can change the library ABI.
273
     
274
 
275
 
276
 --enable-long-long  
277
 The "long long" type was introduced in C99.  It is
278
        provided as a GNU extension to C++98 in g++.  This flag builds
279
        support for "long long" into the library (specialized
280
        templates and the like for iostreams).  This option is on by default:
281
        if enabled, users will have to either use the new-style "C"
282
        headers by default (i.e., <cmath> not <math.h>)
283
        or add appropriate compile-time flags to all compile lines to
284
        allow "C" visibility of this feature (on GNU/Linux,
285
        the flag is -D_ISOC99_SOURCE, which is added automatically via
286
        CPLUSPLUS_CPP_SPEC's addition of _GNU_SOURCE).
287
        This option can change the library ABI.
288
     
289
 
290
 
291
 --enable-fully-dynamic-string
292
 This option enables a special version of basic_string avoiding
293
        the optimization that allocates empty objects in static memory.
294
        Mostly useful together with shared memory allocators, see PR
295
        libstdc++/16612 for details.
296
     
297
 
298
 
299
 --enable-concept-checks
300
 This turns on additional compile-time checks for instantiated
301
        library templates, in the form of specialized templates,
302
        described here.  They
303
        can help users discover when they break the rules of the STL, before
304
        their programs run.
305
     
306
 
307
 
308
 --enable-symvers[=style]
309
 
310
 In 3.1 and later, tries to turn on symbol versioning in the
311
        shared library (if a shared library has been
312
        requested). Values for 'style' that are currently supported
313
        are 'gnu', 'gnu-versioned-namespace', 'darwin',
314
        'darwin-export', and 'sun'. Both gnu- options require that a recent
315
        version of the GNU linker be in use. Both darwin options are
316
        equivalent. With no style given, the configure script will try
317
        to guess correct defaults for the host system, probe to see if
318
        additional requirements are necessary and present for
319
        activation, and if so, will turn symbol versioning on. This
320
        option can change the library ABI.
321
     
322
 
323
 
324
 
325
 --enable-libstdcxx-visibility
326
  In 4.2 and later, enables or disables visibility
327
        attributes. If enabled (as by default), and the compiler seems
328
        capable of passing the simple sanity checks thrown at it, adjusts
329
        items in namespace std, namespace std::tr1, namespace std::tr2,
330
        and namespace __gnu_cxx to have visibility ("default")
331
        so that -fvisibility options can be used without affecting the
332
        normal external-visibility of namespace std entities.
333
        Prior to 4.7 this option was spelled --enable-visibility.
334
    
335
 
336
 
337
 --enable-libstdcxx-pch
338
 In 3.4 and later, tries to turn on the generation of
339
        stdc++.h.gch, a pre-compiled file including all the standard
340
        C++ includes. If enabled (as by default), and the compiler
341
        seems capable of passing the simple sanity checks thrown at
342
        it, try to build stdc++.h.gch as part of the make process.
343
        In addition, this generated file is used later on (by appending 
344
        --include bits/stdc++.h  to CXXFLAGS) when running the
345
        testsuite.
346
     
347
 
348
 
349
 
350
 --enable-extern-template[default]
351
 Use extern template to pre-instantiate all required
352
        specializations for certain types defined in the standard libraries.
353
        These types include string and dependents like
354
        char_traits, the templateized io classes,
355
        allocator, and others.
356
        Disabling means that implicit
357
        template generation will be used when compiling these types.  By
358
        default, this option is on. This option can change the library ABI.
359
     
360
 
361
 
362
 --disable-hosted-libstdcxx
363
 
364
   
365
     By default, a complete hosted C++ library is
366
     built.  The C++ Standard also describes a
367
     freestanding environment, in which only a
368
     minimal set of headers are provided.  This option builds such an
369
     environment.
370
     
371
 
372
 
373
374
 
375

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.