Closed GoogleCodeExporter closed 9 years ago
I get the same error. I could have sworn I tested this before release. Bleah.
It's a simple Makefile bug in the dependencies of this one test. The quick fix
is to
just run 'make -k'. Everything should work fine (except compiling this one
test, of
course).
I'll fix up the dependencies of the next release.
Original comment by csilv...@gmail.com
on 14 Oct 2009 at 2:30
Thanks for looking into that.
$ make -k
...
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [thread_dealloc_unittest.exe] Error 1
for la in libtcmalloc_minimal.la ; do lib=".libs/`basename $la .la`.a"; [ !
-f
"$lib" ] || : "$lib"; done
make: Target `all' not remade because of errors.
Original comment by rogerdp...@gmail.com
on 16 Oct 2009 at 4:19
That seems fine. Is thread_dealloc_unittest and addressmap_unittest the only
things
that failed to build?
Original comment by csilv...@gmail.com
on 16 Oct 2009 at 4:33
I'm not sure. Is there a way to configure it to not build those so I can see
if it
continues to completion, at all?
-r
Original comment by rogerdp...@gmail.com
on 16 Oct 2009 at 4:35
It's fine to just run 'make -k' and see what it gives errors about. If it's all
unittests, that should be ok.
Original comment by csilv...@gmail.com
on 16 Oct 2009 at 5:22
Also, I sometimes see -- I'm guessing this is a bug somewhere in mingw though I
can't
be sure -- that you have to run 'make' twice to get everything to actually
build.
(At least, that seems to be what I'm seeing.) I don't know if that might be an
issue
here or not.
Original comment by csilv...@gmail.com
on 16 Oct 2009 at 5:22
Ok here is the complete output in case I miss anything
They seem to be all unit tests (?)
-r
C:\dev\ruby\downloads\google-perftools-1.4>make -k
Makefile:2475: warning: overriding commands for target
`heap-checker_debug_unittest.sh.exe'
Makefile:2472: warning: ignoring old commands for target
`heap-checker_debug_unittest.sh.exe'
Makefile:2490: warning: overriding commands for target
`heap-profiler_debug_unittest.sh.exe'
Makefile:2487: warning: ignoring old commands for target
`heap-profiler_debug_unittest.sh.exe'
Makefile:2574: warning: overriding commands for target
`sampling_debug_test.sh.exe'
Makefile:2571: warning: ignoring old commands for target
`sampling_debug_test.sh.exe'
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o tcmalloc_mi
nimal_unittest.exe -Wl,-u__tcmalloc
tcmalloc_minimal_unittest-tcmalloc_unittest.o
tcmalloc_minimal_unittest-testutil.o libtcmalloc_minimal.la
libstacktrace.la liblogging.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/tcmalloc_minimal_unittest.exe -Wl,-u__tcmalloc tcmalloc_minimal
_unittest-tcmalloc_unittest.o tcmalloc_minimal_unittest-testutil.o
./.libs/libtcmalloc_minimal.dll.a -lshlwapi ./.libs/libstacktrace.a ./.libs/
liblogging.a -L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [tcmalloc_minimal_unittest.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o tcmalloc_mi
nimal_large_unittest.exe -Wl,-u__tcmalloc
tcmalloc_minimal_large_unittest-tcmalloc_large_unittest.o libtcmalloc_minimal.la
libstacktrace.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/tcmalloc_minimal_large_unittest.exe -Wl,-u__tcmalloc tcmalloc_m
inimal_large_unittest-tcmalloc_large_unittest.o
./.libs/libtcmalloc_minimal.dll.a
-lshlwapi ./.libs/libstacktrace.a -L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [tcmalloc_minimal_large_unittest.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o addressmap_
unittest.exe addressmap_unittest-addressmap_unittest.o liblogging.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
addressmap_unittest.exe addressmap_unittest-addressmap_unittest.o ./
.libs/liblogging.a
addressmap_unittest-addressmap_unittest.o: In function
`Z16SetCheckCallbackPKvPSt4pairIijEPSt3setIS1_IS0_iESt4lessIS5_ESaIS5_EE':
C:/installs/build_env/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++
/3.4.5/bits/stl_set.h:314:
undefined reference to `safe_vsnprint
f(char*, unsigned int, char const*, char*)'
collect2: ld returned 1 exit status
make: *** [addressmap_unittest.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o packed_cach
e_test.exe -Wl,-u__tcmalloc packed_cache_test-packed-cache_test.o
libtcmalloc_minimal.la libstacktrace.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/packed_cache_test.exe -Wl,-u__tcmalloc packed_cache_test-packed
-cache_test.o ./.libs/libtcmalloc_minimal.dll.a -lshlwapi
./.libs/libstacktrace.a
-L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [packed_cache_test.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o frag_unitte
st.exe -Wl,-u__tcmalloc frag_unittest-frag_unittest.o libtcmalloc_minimal.la
libstacktrace.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/frag_unittest.exe -Wl,-u__tcmalloc frag_unittest-frag_unittest.
o ./.libs/libtcmalloc_minimal.dll.a -lshlwapi ./.libs/libstacktrace.a
-L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [frag_unittest.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o markidle_un
ittest.exe -Wl,-u__tcmalloc markidle_unittest-markidle_unittest.o
markidle_unittest-testutil.o libtcmalloc_minimal.la libstacktrace.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/markidle_unittest.exe -Wl,-u__tcmalloc markidle_unittest-markid
le_unittest.o markidle_unittest-testutil.o ./.libs/libtcmalloc_minimal.dll.a
-lshlwapi ./.libs/libstacktrace.a -L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [markidle_unittest.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o malloc_exte
nsion_test.exe -Wl,-u__tcmalloc malloc_extension_test-malloc_extension_test.o
libtcmalloc_minimal.la libstacktrace.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/malloc_extension_test.exe -Wl,-u__tcmalloc malloc_extension_tes
t-malloc_extension_test.o ./.libs/libtcmalloc_minimal.dll.a -lshlwapi
./.libs/libstacktrace.a -L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [malloc_extension_test.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o pagemap_uni
ttest.exe -Wl,-u__tcmalloc pagemap_unittest-pagemap_unittest.o
libtcmalloc_minimal.la libstacktrace.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/pagemap_unittest.exe -Wl,-u__tcmalloc pagemap_unittest-pagemap_
unittest.o ./.libs/libtcmalloc_minimal.dll.a -lshlwapi ./.libs/libstacktrace.a
-L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [pagemap_unittest.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o realloc_uni
ttest.exe -Wl,-u__tcmalloc realloc_unittest-realloc_unittest.o
libtcmalloc_minimal.la libstacktrace.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/realloc_unittest.exe -Wl,-u__tcmalloc realloc_unittest-realloc_
unittest.o ./.libs/libtcmalloc_minimal.dll.a -lshlwapi ./.libs/libstacktrace.a
-L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [realloc_unittest.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o stack_trace
_table_test.exe -Wl,-u__tcmalloc
stack_trace_table_test-stack_trace_table_test.o
libtcmalloc_minimal.la libstacktrace.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/stack_trace_table_test.exe -Wl,-u__tcmalloc stack_trace_table_t
est-stack_trace_table_test.o ./.libs/libtcmalloc_minimal.dll.a -lshlwapi
./.libs/libstacktrace.a -L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [stack_trace_table_test.exe] Error 1
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings
-Woverloaded-virtual -Wno-sign-compare -g -O2 -no-undefined -o thread_deal
loc_unittest.exe -Wl,-u__tcmalloc
thread_dealloc_unittest-thread_dealloc_unittest.o
thread_dealloc_unittest-testutil.o libtcmalloc_minimal.la l
ibstacktrace.la
g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -o
.libs/thread_dealloc_unittest.exe -Wl,-u__tcmalloc
thread_dealloc_unittest-thread_dealloc_unittest.o
thread_dealloc_unittest-testutil.o
./.libs/libtcmalloc_minimal.dll.a -lshlwapi ./.libs/libstacktrace.a
-L/c/installs/tcmalloc/lib
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [thread_dealloc_unittest.exe] Error 1
for la in libtcmalloc_minimal.la ; do lib=".libs/`basename $la .la`.a"; [ !
-f
"$lib" ] || : "$lib"; done
make: Target `all' not remade because of errors.
Original comment by rogerdp...@gmail.com
on 16 Oct 2009 at 5:27
Hmm, it's weird that it's looking for .libs/libstracktrace.a. I don't think it
should be doing that for mingw. You may want to try 'make distclean' and then
re-running ./configure && make to see if these problems go away.
In any case, this is separate from the original problem with
addressmap_unittest.
Original comment by csilv...@gmail.com
on 16 Oct 2009 at 7:48
make -k does help it compile further.
It still stops at
g++.exe: ./.libs/libstacktrace.a: No such file or directory
make: *** [thread_dealloc_unittest.exe] Error 1
for la in libtcmalloc_minimal.la ; do lib=".libs/`basename $la .la`.a"; [ !
-f
"$lib" ] || : "$lib"; done
make: Target `all' not remade because of errors.
Is there a place I can try the latest trunk from? (the svn here doesn't look
like it
gets updated...)
Original comment by rogerdp...@gmail.com
on 20 Oct 2009 at 11:03
The latest trunk doesn't have any changes that would have affected this. We
need to
figure out why your mingw is trying to build libstacktrace. It ought not. Did
you
try doing a 'make distclean' and then reconfiguring? Maybe you can attach your
config.log.
Original comment by csilv...@gmail.com
on 20 Oct 2009 at 11:10
I have tried it and it didn't seem to help.
Here's a config.log if that's any help.
This is with msys (version?) +mingw gcc 3.4.5
Original comment by rogerpack2005
on 20 Oct 2009 at 11:33
Attachments:
OK, I figured out why it wants libstacktrace.la -- I told it to ask for it.
*blush*
I had forgotten about that.
Now we need to figure out why your system isn't trying to make it. Does 'ls
.libs'
show anything related to libstacktrace? What happens when you type
make libstacktrace.la
?
The next set of files it would be useful for you to attach are your Makefile,
and the
output of
find .
when run from the directory you run 'make' in.
We'll figure this one out!
Original comment by csilv...@gmail.com
on 21 Oct 2009 at 2:05
Let us see...
C:\dev\ruby\downloads\google-perftools-1.4>ls .libs | grep stack
libtcmalloc_minimal_internal_la-stack_trace_table.o
C:\dev\ruby\downloads\google-perftools-1.4>make libstacktrace.la
Makefile:2475: warning: overriding commands for target `heap-
checker_debug_unittest.sh.exe'
Makefile:2472: warning: ignoring old commands for target `heap-
checker_debug_unittest.sh.exe'
Makefile:2490: warning: overriding commands for target `heap-
profiler_debug_unittest.sh.exe'
Makefile:2487: warning: ignoring old commands for target `heap-
profiler_debug_unittest.sh.exe'
Makefile:2574: warning: overriding commands for target
`sampling_debug_test.sh.exe'
Makefile:2571: warning: ignoring old commands for target
`sampling_debug_test.sh.exe'
make: `libstacktrace.la' is up to date.
C:\dev\ruby\downloads\google-perftools-1.4>find | grep libstacktrace
./libstacktrace.la
(rest of find attached)
Thanks!
-r
Original comment by rogerdp...@gmail.com
on 21 Oct 2009 at 10:23
Attachments:
ok, looks like what happened is the wrapper stub got created, but the actual
library
files got deleted. I don't know how that would happen, and I don't know why a
'make
distclean' plus re-running ./configure and make wouldn't fix it.
Anyway, try this:
rm libstacktrace.la
make libstacktrace.la
find . -name '*stacktrace*'
Does that create any libstacktrace files in the .libs directory? Does
everything
build cleanly after that?
Original comment by csilv...@gmail.com
on 21 Oct 2009 at 10:28
C:\dev\ruby\downloads\google-perftools-1.4>rm libstacktrace.la
C:\dev\ruby\downloads\google-perftools-1.4>make libstacktrace.la
Makefile:2475: warning: overriding commands for target `heap-
checker_debug_unittest.sh.exe'
Makefile:2472: warning: ignoring old commands for target `heap-
checker_debug_unittest.sh.exe'
Makefile:2490: warning: overriding commands for target `heap-
profiler_debug_unittest.sh.exe'
Makefile:2487: warning: ignoring old commands for target `heap-
profiler_debug_unittest.sh.exe'
Makefile:2574: warning: overriding commands for target
`sampling_debug_test.sh.exe'
Makefile:2571: warning: ignoring old commands for target
`sampling_debug_test.sh.exe'
/bin/sh ./libtool --tag=CXX --mode=link g++ -Wall -Wwrite-strings -Woverloaded-
virtual -Wno-sign-compare -g -O2 -no-undefined -o libstacktrace.la
ar cru .libs/libstacktrace.a
ranlib .libs/libstacktrace.a
creating libstacktrace.la
(cd .libs && rm -f libstacktrace.la && ln -s ../libstacktrace.la
libstacktrace.la)
C:\dev\ruby\downloads\google-perftools-1.4> find . -name '*stacktrace*'
./.deps/stacktrace.Plo
./.deps/stacktrace_unittest.Po
./.deps/stacktrace_with_context.Plo
./.libs/libstacktrace.a
./.libs/libstacktrace.la
./libstacktrace.la
./src/google/stacktrace.h
./src/stacktrace.cc
./src/stacktrace_config.h
./src/stacktrace_generic-inl.h
./src/stacktrace_libunwind-inl.h
./src/stacktrace_powerpc-inl.h
./src/stacktrace_win32-inl.h
./src/stacktrace_with_context.cc
./src/stacktrace_x86-inl.h
./src/stacktrace_x86_64-inl.h
./src/tests/stacktrace_unittest.cc
C:\dev\ruby\downloads\google-perftools-1.4>ls .libs | grep stack
libstacktrace.a
libstacktrace.la
libtcmalloc_minimal_internal_la-stack_trace_table.o
make results in
addressmap_unittest-addressmap_unittest.o: In function
`Z16SetCheckCallbackPKvPSt4pairIijEPSt3setIS1_IS0_iESt4lessIS5_ESaIS5_EE':
C:/installs/build_env/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++
/3.4.
5/bits/stl_set.h:314: undefined reference to `safe_vsnprintf(char*, unsigned
int,
char const*, char*)'
collect2: ld returned 1 exit status
make: *** [addressmap_unittest.exe] Error 1
make -k
"might" complete (not sure--seems to get farther than it used to...)
still has
addressmap_unittest-addressmap_unittest.o: In function
`Z16SetCheckCallbackPKvPSt4pairIijEPSt3setIS1_IS0_iESt4lessIS5_ESaIS5_EE':
C:/installs/build_env/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++
/3.4.
5/bits/stl_set.h:314: undefined reference to `safe_vsnprintf(char*, unsigned
int,
char const*, char*)'
collect2: ld returned 1 exit status
make: *** [addressmap_unittest.exe] Error 1
Thanks!
-r
Original comment by rogerpack2005
on 29 Oct 2009 at 8:26
Good, it looks like rebuiling from scratch fixed your problem.
You can do something like
make -k 2>&1 | fgrep '***'
If the only error it reports is for addressmap_unittest.exe, you should be fine.
Original comment by csilv...@gmail.com
on 29 Oct 2009 at 9:20
it does indeed
C:\dev\ruby\downloads\google-perftools-1.4> make -k 2>&1 | fgrep '***'
make: *** [addressmap_unittest.exe] Error 1
Guess I'm good then.
Thanks!
Original comment by rogerdp...@gmail.com
on 30 Oct 2009 at 6:31
Any chance of getting a new release sometime? That would be nice.
Thanks either way.
-r
Original comment by rogerpack2005
on 21 Dec 2009 at 10:26
I'm hoping to figure out a few performance issues for the core tcmalloc code
before
the next release, but either way I'll be releasing something in the Q1. In the
meantime, svn-head should work ok, if you wanted to just download it and try it
out.
Original comment by csilv...@gmail.com
on 22 Dec 2009 at 3:06
hmm. This *might* be caused by my mixing cygwin and msys...but it might be a
real
bug :)
-r
g++ -DHAVE_CONFIG_H -I. -I. -I./src -I./src -DNO_TCMALLOC_SAMPLES -Wall -Wwrite-
strings -Woverloaded-virtual -Wno-sign-compare -g -O2 -MT patch_functions.lo
-MD -MP
-MF .deps/patch_functions.Tpo -c src/windows/patch_functions.cc -DDLL_EXPORT
-DPIC -
o .libs/patch_functions.o
src/windows/patch_functions.cc: In member function `void
<unnamed>::WindowsInfo::Patch()':
src/windows/patch_functions.cc:542: error: ISO C++ forbids casting between
pointer-
to-function and pointer-to-object
src/windows/patch_functions.cc: In member function `bool
<unnamed>::LibcInfoWithPatchFunctions<<anonymous> >::Patch(const
<unnamed>::LibcInfo&) [with int <anonymous> = 1]':
src/windows/patch_functions.cc:579: instantiated from here
src/windows/patch_functions.cc:503: error: ISO C++ forbids casting between
pointer-
to-function and pointer-to-object
src/windows/patch_functions.cc: In member function `bool
<unnamed>::LibcInfoWithPatchFunctions<<anonymous> >::Patch(const
<unnamed>::LibcInfo&) [with int <anonymous> = 2]':
Original comment by rogerpack2005
on 22 Dec 2009 at 1:56
:-) It's both. The casts we do are definitely illegal -- and unsafe on x86_64
platforms, though most (all?) cygwin/msys installations are 32 bit, so they
should be
safe. But msys shouldn't warn about this particular error, and cygwin
shouldn't need
to be compiling this code, so it looks like it's indeed caused by a mixing of
some
sort. If there's a flag you can give to suppress the error, that would be the
easiest workaround. The code itself is safe on x86 systems.
Original comment by csilv...@gmail.com
on 22 Dec 2009 at 3:32
appears that with GCC 4.4.1 it compiles fine, with msys+3.4.5 it raises those
errors
(are they new?)
-r
Original comment by rogerpack2005
on 27 Dec 2009 at 12:21
Is this gcc 4.1.1 on msys, or on another platform?
I still don't understand where these errors are coming from -- or why this
problematic code is being compiling at all for your platform. Maybe it's the
mix of
cygwin and msys. What happens when you don't try mixing them?
Original comment by csilv...@gmail.com
on 27 Dec 2009 at 4:10
well, to the best of my knowledge that's both 3.4.5 and 4.1.1 on msys.
I'll give it another go to to verify though.
-r
Original comment by rogerpack2005
on 28 Dec 2009 at 4:34
This should be fixed in perftools 1.5, just released.
Original comment by csilv...@gmail.com
on 20 Jan 2010 at 11:11
it does build OOTB with msys/mingw gcc 3.4.5 now
Thanks!
Original comment by rogerpack2005
on 21 Jan 2010 at 5:12
Original issue reported on code.google.com by
rogerpack2005
on 8 Oct 2009 at 10:07