Bitcoin Forum
June 27, 2024, 06:02:06 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Compiling Bitcoind on centos 5.8  (Read 1267 times)
gweedo (OP)
Legendary
*
Offline Offline

Activity: 1498
Merit: 1000


View Profile
August 18, 2012, 06:41:48 PM
 #1

I want to compile bitcoind on centos 5.8 but when I run the
Code:
make -j2 -f makefile.new bitcoind
on a custom makefile for centos, it gives me

Code:
cc1plus: out of memory allocating 25608 bytes after a total of 39591936 bytes
make: *** [obj/bitcoinrpc.o] Error 1
make: *** Waiting for unfinished jobs....
g++: -z: linker input file unused because linking not done
g++: relro: linker input file unused because linking not done
g++: -z: linker input file unused because linking not done
g++: now: linker input file unused because linking not done

the makefile I am using

Code:
# Copyright (c) 2009-2010 Satoshi Nakamoto
# Distributed under the MIT/X11 software license, see the accompanying
# file license.txt or http://www.opensource.org/licenses/mit-license.php.

USE_UPNP:=

DEFS=-DNOPCH

DEFS += $(addprefix -I,$(CURDIR) $(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH))
LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))
DEPSDIR=/root/Bitcoin/Deps
LMODE2 = dynamic
LMODE = dynamic

INCLUDEPATHS= -I"$(DEPSDIR)/include"
LIBPATHS= -L"$(DEPSDIR)/lib"
BOOST_LIB_SUFFIX=.a
BDB_LIB_SUFFIX=.a
CRYPTO_LIB_SUFFIX=.a

# for boost 1.37, add -mt to the boost libraries
LIBS += \
   -mtl $(DEPSDIR)/lib/libboost_system$(BOOST_LIB_SUFFIX) \
   -mtl $(DEPSDIR)/lib/libboost_filesystem$(BOOST_LIB_SUFFIX) \
   -mtl $(DEPSDIR)/lib/libboost_program_options$(BOOST_LIB_SUFFIX) \
   -mtl $(DEPSDIR)/lib/libboost_thread$(BOOST_LIB_SUFFIX) \
   $(DEPSDIR)/lib/libdb_cxx$(BDB_LIB_SUFFIX) \
   -mtl $(DEPSDIR)/lib/libssl.a \
   -mtl $(DEPSDIR)/lib/libcrypto$(CRYPTO_LIB_SUFFIX)

ifndef USE_UPNP
override USE_UPNP = -
endif
ifneq (${USE_UPNP}, -)
LIBS += -l miniupnpc
DEFS += -DUSE_UPNP=$(USE_UPNP)
endif

ifneq (${USE_SSL}, 0)
DEFS += -DUSE_SSL
endif

LIBS+= \
 -Wl,-B$(LMODE2) \
   -l dl \
   -l pthread


# Hardening
# Make some classes of vulnerabilities unexploitable in case one is discovered.
#
    # This is a workaround for Ubuntu bug #691722, the default -fstack-protector causes
    # -fstack-protector-all to be ignored unless -fno-stack-protector is used first.
    # see: https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/691722
    HARDENING=-fno-stack-protector

    # Stack Canaries
    # Put numbers at the beginning of each stack frame and check that they are the same.
    # If a stack buffer if overflowed, it writes over the canary number and then on return
    # when that number is checked, it won't be the same and the program will exit with
    # a "Stack smashing detected" error instead of being exploited.
    HARDENING+=-fstack-protector-all -Wstack-protector

    # Make some important things such as the global offset table read only as soon as
    # the dynamic linker is finished building it. This will prevent overwriting of addresses
    # which would later be jumped to.
    HARDENING+=-Wl,-z,relro -Wl,-z,now

    # Build position independent code to take advantage of Address Space Layout Randomization
    # offered by some kernels.
    # see doc/build-unix.txt for more information.
    ifdef PIE
        HARDENING+=-fPIE -pie
    endif

    # -D_FORTIFY_SOURCE=2 does some checking for potentially exploitable code patterns in
    # the source such overflowing a statically defined buffer.
    HARDENING+=-D_FORTIFY_SOURCE=2


DEBUGFLAGS=-g
CXXFLAGS=-O2
xCXXFLAGS=-pthread -Wextra -Wno-sign-compare -Wno-char-subscripts -Wno-invalid-offsetof -Wformat -Wformat-security \
    $(DEBUGFLAGS) $(DEFS) $(HARDENING) $(CXXFLAGS) $(INCLUDEPATHS)

OBJS= \
  obj/checkpoints.o \
  obj/version.o \
  obj/addrman.o \
  obj/netbase.o \
  obj/crypter.o \
  obj/key.o \
  obj/db.o \
  obj/init.o \
  obj/irc.o \
  obj/keystore.o \
  obj/main.o \
  obj/net.o \
  obj/protocol.o \
  obj/bitcoinrpc.o \
  obj/rpcdump.o \
  obj/script.o \
  obj/util.o \
  obj/wallet.o \
  obj/walletdb.o \
  obj/noui.o


all: bitcoind

# auto-generated dependencies:
-include obj/*.P
-include obj-test/*.P

obj/%.o: %.cpp
$(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
  sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
      -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
  rm -f $(@:%.o=%.d)

bitcoind: $(OBJS:obj/%=obj/%)
$(CXX) $(xCXXFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS)

TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))

obj-test/%.o: test/%.cpp
$(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -o $@ $<
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
  sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
      -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
  rm -f $(@:%.o=%.d)

test_bitcoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
$(CXX) $(xCXXFLAGS) -o $@ $(LIBPATHS) $^ -Wl,-B$(LMODE) -lboost_unit_test_framework $(LDFLAGS) $(LIBS)

clean:
-rm -f bitcoind test_bitcoin
-rm -f obj/*.o
-rm -f obj-test/*.o
-rm -f obj/*.P
-rm -f obj-test/*.P
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!