On Sat, 05 Jun 2004 19:36:32 -0400, William M. Quarles wrote:
I don't know much of anything about creating RPMs from scratch,
but I
was watching the rebuilding of an SRPM on my computer, to which I passed
the --target=i686 flag, and its compilation lines looked like this
c++ -c -I./lib/wx/include/gtk-2.4 -I../include -I/usr/include/gtk-1.2
-I/usr/include/glib-1.2 -I/usr/lib/glib/include -D_REENTRANT
-I/usr/X11R6/include -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES
-D__WXGTK__ -DGTK_NO_CHECK_CASTS -D_IODBC_ -O2 -MMD -pthread -Wall -fPIC
-o tbargtk.o ../src/gtk/tbargtk.cpp
Now -march=i686 is not showing up anywhere in there. Did the packager
do something wrong, or is it normal for the flag to not get passed to
C++ compilation lines during a rebuild?
Default target platform dependent RPM optimization flags are passed on
by default. But it's up to the code, which is compiled, whether it
accepts $CFLAGS and $CXXFLAGS from the outside to override its own
default ones. Could be that the program you've tried to compile has -O2
hardcoded. In such a case, packagers might patch the code and replace it
with '$(RPM_OPT_FLAGS)'.