[EDG eccp] --template_directory=/lib causing linker errors
----------------------------------------------------------

                 Key: STDCXX-409
                 URL: https://issues.apache.org/jira/browse/STDCXX-409
             Project: C++ Standard Library
          Issue Type: Bug
          Components: Build
    Affects Versions: 4.1.3
         Environment: EDG eccp 3.8, Solaris
            Reporter: Martin Sebor
            Priority: Critical


Invoking make without specifying BUILDDIR sets --template_directory=/lib which 
causes errors when linking with the library:

### gmake builddir BUILDMODE=,,debug, CONFIG=eccp.config
creating BUILDDIR=/build2/batman/5.0.0/builds/33598607/source-buildspace/build
generating 
/build2/batman/5.0.0/builds/33598607/source-buildspace/build/makefile.in from 
/build2/batman/5.0.0/builds/33598607/source-buildspace/etc/config/eccp.config
build directory created: 
BUILDDIR=/build2/batman/5.0.0/builds/33598607/source-buildspace/build

### gmake config
gmake[1]: Entering directory `$(BUILDDIR)'
gmake[2]: Entering directory `$(BUILDDIR)/include'
gmake config
gmake[3]: Entering directory `$(BUILDDIR)/include'

configuring for eccp-3.9 on sunos-5.9-sparc

checking if the compiler is sane                   ok (invoked with eccp)
checking if the linker is sane                     ok (invoked with eccp)
checking system architecture                       ILP32 big endian
...
gmake[3]: Leaving directory `$(BUILDDIR)/include'
touch config.h
gmake[2]: Leaving directory `$(BUILDDIR)/include'
gmake[1]: Leaving directory `$(BUILDDIR)'
...
### gmake -Cbuild/lib
gmake: Entering directory `$(BUILDDIR)/lib'
generating dependencies for $(TOPDIR)/src/wctype.cpp
...
gmake: Leaving directory `$(BUILDDIR)/lib'
gmake: Entering directory `$(BUILDDIR)/lib'
eccp -c -I$(TOPDIR)/include/ansi -D_RWSTDDEBUG    -I$(TOPDIR)/include 
-I$(BUILDDIR)/include  -A -x --template_directory=/lib -g  
--display_error_number --remarks --diag_suppress 
193,236,340,401,261,479,487,678,679,815    $(TOPDIR)/src/assert.cpp
...
eccp -I$(TOPDIR)/include/ansi -D_RWSTDDEBUG    -I$(TOPDIR)/include 
-I$(BUILDDIR)/include  --template_directory=/lib       --prelink_objects 
assert.o bitset.o catalog.o codecvt.o collate.o ctype.o ctype_bits.o 
exception.o export.o facet.o file.o instance.o ios.o ios_bits.o iostore.o 
iostream.o iso2022.o limits.o limits_bits.o locale_bits.o locale_body.o 
locale_classic.o locale_combine.o locale_core.o locale_eq.o locale_global.o 
locale_name.o memattr.o memory.o messages.o num_get.o num_put.o punct.o 
random.o setlocale.o string.o strstream.o strtol.o ti_collate.o ti_filebuf.o 
ti_insert_dbl.o ti_insert_int.o ti_insert_ptr.o ti_ios.o ti_istream.o 
ti_messages.o ti_money_get.o ti_money_put.o ti_moneypunct.o ti_num_get.o 
ti_num_put.o ti_numpunct.o ti_ostream.o ti_podarray.o ti_streambuf.o 
ti_string.o ti_stringbuf.o ti_time_get.o ti_time_put.o ti_wcollate.o 
ti_wfilebuf.o ti_winsert_dbl.o ti_winsert_int.o ti_winsert_ptr.o ti_wios.o 
ti_wistream.o ti_wmessages.o ti_wmoney_get.o ti_wmoney_put.o ti_wmoneypunct.o 
ti_wnum_get.o ti_wnum_put.o ti_wnumpunct.o ti_wostream.o ti_wstreambuf.o 
ti_wstring.o ti_wstringbuf.o ti_wtime_get.o ti_wtime_put.o time_get.o 
time_put.o tmpbuf.o typeinfo.o valarray.o vecbool.o version.o wcodecvt.o 
wctype.o 
ar rv  libstd.a assert.o bitset.o catalog.o codecvt.o collate.o ctype.o 
ctype_bits.o exception.o export.o facet.o file.o instance.o ios.o ios_bits.o 
iostore.o iostream.o iso2022.o limits.o limits_bits.o locale_bits.o 
locale_body.o locale_classic.o locale_combine.o locale_core.o locale_eq.o 
locale_global.o locale_name.o memattr.o memory.o messages.o num_get.o num_put.o 
punct.o random.o setlocale.o string.o strstream.o strtol.o ti_collate.o 
ti_filebuf.o ti_insert_dbl.o ti_insert_int.o ti_insert_ptr.o ti_ios.o 
ti_istream.o ti_messages.o ti_money_get.o ti_money_put.o ti_moneypunct.o 
ti_num_get.o ti_num_put.o ti_numpunct.o ti_ostream.o ti_podarray.o 
ti_streambuf.o ti_string.o ti_stringbuf.o ti_time_get.o ti_time_put.o 
ti_wcollate.o ti_wfilebuf.o ti_winsert_dbl.o ti_winsert_int.o ti_winsert_ptr.o 
ti_wios.o ti_wistream.o ti_wmessages.o ti_wmoney_get.o ti_wmoney_put.o 
ti_wmoneypunct.o ti_wnum_get.o ti_wnum_put.o ti_wnumpunct.o ti_wostream.o 
ti_wstreambuf.o ti_wstring.o ti_wstringbuf.o ti_wtime_get.o ti_wtime_put.o 
time_get.o time_put.o tmpbuf.o typeinfo.o valarray.o vecbool.o version.o 
wcodecvt.o wctype.o 
ar: creating libstd.a
ar: writing libstd.a
...
a - wctype.o
gencat rwstderr.cat $(TOPDIR)/src/rwstderr.msg
gmake: Leaving directory `$(BUILDDIR)/lib'
...
### gmake -k -Cbuild/examples
gmake: Entering directory `$(BUILDDIR)/examples'
...
generating dependencies for $(TOPDIR)/examples/manual/accumulate.cpp
gmake: Leaving directory `$(BUILDDIR)/examples'
gmake: Entering directory `$(BUILDDIR)/examples'
eccp -c -I$(TOPDIR)/include/ansi -D_RWSTDDEBUG    -I$(TOPDIR)/include 
-I$(BUILDDIR)/include -I$(TOPDIR)/examples/include  -A -x 
--template_directory=/lib -g  --display_error_number --remarks --diag_suppress 
193,236,340,401,261,479,487,678,679,815   
$(TOPDIR)/examples/manual/accumulate.cpp
eccp accumulate.o -o accumulate --template_directory=/lib   -L$(BUILDDIR)/lib  
-lstd  -lm 
Undefined                       first referenced
 symbol                             in file
void std::vector<T1, T2>::_C_destroy(__rw::__rw_debug_iter<std::vector<T1, T2>, 
T2::pointer, T2::pointer>) [with T1=int, T2=std::allocator<int>] accumulate.o
void std::vector<T1, T2>::_C_assign_range<U1>(U1, U1, 
std::forward_iterator_tag) [with T1=int, T2=std::allocator<int>, U1=const int 
*] accumulate.o
ld: fatal: Symbol referencing errors. No output written to accumulate
collect2: ld returned 1 exit status
gmake: *** [accumulate] Error 1
...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to