A minor correction to my earlier post, the elf parsing code that i
pasted, it fails in the data section not the code section, however,
the checks that fail are the same except that Text is replaced with
data
Thanks and waiting for your reply
On Oct 24, 11:09 pm, Cyptmon <[EMAIL PROTECTED]> wrote:
> I tried running a simple program written in C++ and compiling using
> the same command and ran it under the simulator, that works fine,
> which tells me that there is something wrong that I am doing when
> linking to the library. All other benchmarks compiled with this cross
> compiler run fine as well.
>
> Hope you can give me some insight into the problem
>
> On Oct 24, 6:20 pm, Cyptmon <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > I was just wondering if the compiler options that I use for compiling
> > the library are fine with the way the library should be compiled,
> > some compliance issues or something
>
> > I am pasting the options that I use here again for your quick
> > reference, in particular the -Wa,-non_shared and -static options.
>
> > The error is actually on the simulator, it parses the ELF executable
> > generated
>
> > stores the address where the executable is loaded in a variable named
> > "addr"
>
> > It then parses the headers of the executable, in the header called
> > "__libc_freeres_fn"
>
> > It checks for the following there
>
> > if (strcmp(name, "__libc_freeres_fn") == 0) {
> > if (Text_start == 0) {
> > Text_seek = offset;
> > Text_start = addr;
> > Text_size = size;
> > } else if (addr != Text_start + Text_size){
>
> > if( (addr - ( Text_start + Text_size)) < 256 ){
> > #ifdef DEBUG
> > fprintf(stderr,"__libc_freeres_fn Minor header aligment
> > correction (%x vs %x)\n"
> > ,addr,( Text_start + Text_size));
> > #endif
> > Text_size += size + addr - ( Text_start + Text_size);
> > }else
> > fatal("__libc_freeres_fn section not contiguous with .text
> > section\n");
>
> > //The above line is the error that i get
>
> > Here are the flags that I use for compilation
>
> > LDFLAGS = -mips2 -mno-abicalls -mabi=32 -mtune=r6000 -msplit-addresses
> > -lm -Wa,--start-group -lc -lnss_files -lnss_dns -lresolv -Wa,--end-
> > group
> > #MLDOPTS +=-mips2 -Wa,-non_shared
> > AR = /usr/local/bin/mipseb-linux-ar
> > ARFLAGS = -rv
> > RANLIB = /usr/local/bin/mipseb-linux-ranlib
> > CP = cp
> > MKDIR = mkdir
> > EGREP = egrep
> > UNAME = $(shell uname)
> > ISX86 = $(shell uname -m | $(EGREP) -c "i.86|x86|i86")
> > ISMINGW = $(shell uname | $(EGREP) -c "MINGW32")
>
> > CXX = /usr/local/bin/mipseb-linux-g++
> > CXXFLAGS = -mips2 -mno-abicalls -mabi=32 -mtune=r6000 -msplit-
> > addresses -I. -static -Wa,-non_shared -I. -I/usr/local/mipseb-linux/
> > include/c++/3.2 -I/usr/local/mipseb-linux/include/c++/3.2/backward -I/
> > usr/local/mipseb-linux/include/c++/3.2/mips-linux-gnu
>
> > #-I. -I/usr/local/mipseb-linux/include/c++/3.2 -I/usr/local/mipseb-
> > linux/include/c++/3.2/backward -I/usr/local/mipseb-linux/include/c++/
> > 3.2/mips-linux-gnu -static -Wa,-non_shared -mips2 -mno-abicalls -
> > mabi=32 -mtune=r6000 -msplit-addresses -mips2 -Wa,-non_shared
>
> > On Oct 24, 5:38 pm, "Wei Dai" <[EMAIL PROTECTED]> wrote:
>
> > > Sorry, I have no idea what that means. Google doesn't even have one hit
> > > for
> > > "data sections not contiguous", which doesn't make any sense... Did you
> > > copy
> > > the exact error message?
>
> > > --------------------------------------------------
> > > From: "Cyptmon" <[EMAIL PROTECTED]>
> > > Sent: Tuesday, October 23, 2007 10:57 PM
> > > To: "Crypto++ Users" <[EMAIL PROTECTED]>
> > > Subject: Re: Build issues
>
> > > > Hi,
>
> > > > I removed some of the socket related #defines as you suggested from
> > > > config.h
>
> > > > Now the library builds fine
>
> > > > However, when I try to run it on the simulator
>
> > > > It gives the following error for cryptest.exe
>
> > > > ERROR: __libc_subfreeres data sections not contiguous
>
> > > > Would you know anything why this can happen, some compiler/linker
> > > > option causing this behavior, some ordering problem ?
>
> > > > Thanks
>
> > > > On Oct 24, 12:18 am, Cyptmon <[EMAIL PROTECTED]> wrote:
> > > >> I will recompile the cross compiler in the night and post on the list
> > > >> if it worked, thanks for the pointers though
>
> > > >> On Oct 23, 11:56 pm, "Wei Dai" <[EMAIL PROTECTED]> wrote:
>
> > > >> > I have a couple of ideas:
>
> > > >> > 1. Edit config.h and comment out the line "#define SOCKETS_AVAILABLE"
> > > >> > 2. Recompile your mips glibc with --enable-static-nss
>
> > > >> > --------------------------------------------------
> > > >> > From: "Cyptmon" <[EMAIL PROTECTED]>
> > > >> > Sent: Tuesday, October 23, 2007 2:09 PM
> > > >> > To: "Crypto++ Users" <[EMAIL PROTECTED]>
> > > >> > Subject: Build issues
>
> > > >> > > I am trying to build the library for MIPS, I have changed the make
> > > >> > > file and I am putting the changes to the makefile towards the end.
> > > >> > > Now
> > > >> > > things compile fine but there is a linker error, it builds the
> > > >> > > library, however, when I try to link it to another program, it
> > > >> > > says,
> > > >> > > linking not done...
>
> > > >> > > Here are the changes to the Makefile
>
> > > >> > > LDFLAGS
> > > >> > > = -mips2 -mno-abicalls -mabi=32 -mtune=r6000 -msplit-addresses
> > > >> > > -lm -Wa,--start-group -lc -lnss_files -lnss_dns -lresolv -Wa,--end-
> > > >> > > group
> > > >> > > #MLDOPTS +=-mips2 -Wa,-non_shared
> > > >> > > AR = /usr/local/bin/mipseb-linux-ar
> > > >> > > ARFLAGS = -rv
> > > >> > > RANLIB = /usr/local/bin/mipseb-linux-ranlib
> > > >> > > CP = cp
> > > >> > > MKDIR = mkdir
> > > >> > > EGREP = egrep
> > > >> > > UNAME = $(shell uname)
> > > >> > > ISX86 = $(shell uname -m | $(EGREP) -c "i.86|x86|i86")
> > > >> > > ISMINGW = $(shell uname | $(EGREP) -c "MINGW32")
>
> > > >> > > CXX = /usr/local/bin/mipseb-linux-g++
> > > >> > > CXXFLAGS = -mips2 -mno-abicalls -mabi=32 -mtune=r6000 -msplit-
> > > >> > > addresses -I. -static -Wa,-non_shared -I.
> > > >> > > -I/usr/local/mipseb-linux/
> > > >> > > include/c++/3.2 -I/usr/local/mipseb-linux/include/c++/3.2/backward
> > > >> > > -I/
> > > >> > > usr/local/mipseb-linux/include/c++/3.2/mips-linux-gnu
>
> > > >> > > #-I. -I/usr/local/mipseb-linux/include/c++/3.2 -I/usr/local/mipseb-
> > > >> > > linux/include/c++/3.2/backward
> > > >> > > -I/usr/local/mipseb-linux/include/c++/
> > > >> > > 3.2/mips-linux-gnu -static -Wa,-non_shared -mips2 -mno-abicalls -
> > > >> > > mabi=32 -mtune=r6000 -msplit-addresses -mips2 -Wa,-non_shared
>
> > > >> > > SRCS = $(wildcard *.cpp)
> > > >> > > ifeq ($(SRCS),) # workaround wildcard
> > > >> > > function
> > > >> > > bug in GNU Make 3.77
> > > >> > > SRCS = $(shell echo *.cpp)
> > > >> > > endif
> > > >> > > OBJS = $(SRCS:.cpp=.o)
> > > >> > > # test.o needs to be after bench.o for cygwin 1.1.4 (possible ld
> > > >> > > bug?)
> > > >> > > TESTOBJS = bench.o bench2.o test.o validat1.o validat2.o validat3.o
> > > >> > > adhoc.o datatest.o regtest.o fipsalgt.o dlltest.o
> > > >> > > LIBOBJS = $(filter-out $(TESTOBJS),$(OBJS))
>
> > > >> > > Here is the linker errors that I get
>
> > > >> > > /usr/local/bin/mipseb-linux-g++ -o cryptest.exe -mips2
> > > >> > > -mno-abicalls
> > > >> > > -mabi=32 -mtune=r6000 -msplit-addresses -I. -static
> > > >> > > -Wa,-non_shared -
> > > >> > > I. -I/usr/local/mipseb-linux/include/c++/3.2
> > > >> > > -I/usr/local/mipseb-linux/
> > > >> > > include/c++/3.2/backward -I/usr/local/mipseb-linux/include/c++/3.2/
> > > >> > > mips-linux-gnu bench.o bench2.o test.o validat1.o validat2.o
> > > >> > > validat3.o adhoc.o datatest.o regtest.o fipsalgt.o dlltest.o -L. -
> > > >> > > lcryptopp -mips2 -mno-abicalls -mabi=32 -mtune=r6000
> > > >> > > -msplit-addresses
> > > >> > > -lm -Wa,--start-group -lc -lnss_files -lnss_dns -lresolv -Wa,--end-
> > > >> > > group
> > > >> > > /usr/local/lib/gcc-lib/mipseb-linux/3.2.1/../../../../mipseb-linux/lib/
> > > >> > > libc.a(nsswitch.o)(.data+0x64): undefined reference to
> > > >> > > `_nss_files_getaliasent_r'
> > > >> > > /usr/local/lib/gcc-lib/mipseb-linux/3.2.1/../../../../mipseb-linux/lib/
> > > >> > > libc.a(nsswitch.o)(.data+0x6c): undefined reference to
> > > >> > > `_nss_files_endaliasent'
> > > >> > > /usr/local/lib/gcc-lib/mipseb-linux/3.2.1/../../../../mipseb-linux/lib/
> > > >> > > libc.a(nsswitch.o)(.data+0x74): undefined reference to
> > > >> > > `_nss_files_setaliasent'
> > > >> > > /usr/local/lib/gcc-lib/mipseb-linux/3.2.1/../../../../mipseb-linux/lib/
> > > >> > > libc.a(nsswitch.o)(.data+0x7c): undefined reference to
> > > >> > > `_nss_files_getaliasbyname_r'
> > > >> > > /usr/local/lib/gcc-lib/mipseb-linux/3.2.1/../../../../mipseb-linux/lib/
> > > >> > > libc.a(nsswitch.o)(.data+0x84): undefined reference to
> > > >> > > `_nss_files_getetherent_r'
> > > >> > > /usr/local/lib/gcc-lib/mipseb-linux/3.2.1/../../../../mipseb-linux/lib/
> > > >> > > libc.a(nsswitch.o)(.data+0x8c): undefined reference to
> > > >> > > `_nss_files_endetherent'
> > > >> > > /usr/local/lib/gcc-lib/mipseb-linux/3.2.1/../../../../mipseb-linux/lib/
> > > >> > > libc.a(nsswitch.o)(.data+0x94): undefined reference to
> > > >> > > `_nss_files_setetherent'
>
> > > >> > > This keeps coming for some 50 other things, I
> > > >> > > added -Wa,--start-group -
> > > >> > > lc -lnss_files -lnss_dns -lresolv -Wa,--end-group to LDFLAGS to
> > > >> > > solve
> > > >> > > the problem, but it doesnt work
>
> > > > > Thanks in advance
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users"
Google Group.
To unsubscribe, send an email to [EMAIL PROTECTED]
More information about Crypto++ and this group is available at
http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---