[reSIProcate] resiprocate-devel Digest, Vol 48, Issue 18

Mandeep Ahuja ahuja at aksysnetworks.com
Wed Apr 30 16:10:37 CDT 2008


Hi,
I checked out the code again and ran it, and got over the white space. 
So the white space issue is gone.
Still can't seem to resolve
[ahuja at canmore resiprocate]$ make
cd contrib/ares-build.Linux.mips && make
make[1]: Entering directory 
`/home/ahuja/Desktop/resiprocate/contrib/ares-build.Linux.mips'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory 
`/home/ahuja/Desktop/resiprocate/contrib/ares-build.Linux.mips'
cd rutil; make
make[1]: Entering directory `/home/ahuja/Desktop/resiprocate/rutil'
/home/ahuja/aksys/tools/linux/bin/mips_fp_le-g++ -D_REENTRANT  -Os 
-fno-inline -fno-keep-static-consts -Wall -fPIC -I..       
-I../build/../contrib/ares -DOS_MAJOR_VER=2 -DOS_MINOR_VER=4 
-DOS_POINT_VER=22-1 -DOS_PATCH_VER=2115 -DUSE_ARES -c -o 
obj.small.Linux.mips/DnsUtil.o DnsUtil.cxx
In file included from ../rutil/Socket.hxx:16,
                 from DnsUtil.cxx:18:
../rutil/TransportType.hxx:4: ostream: No such file or directory <--- 
This here is at /home/ahuja/aksys/tools/linux/target/usr/include/g++-3. 
Can't locate it
make[1]: *** [obj.small.Linux.mips/DnsUtil.o] Error 1
make[1]: Leaving directory `/home/ahuja/Desktop/resiprocate/rutil'
make: *** [rutil] Error 2

Let me know when you have time so you can help me resolve this.

Thanks a ton
Mandeep



Adam Roach wrote:

> Hi. Sorry; I'm not ignoring you -- I've just run out of time for right 
> now.
>
> The problems you're seeing are, indeed, because of the whitespaces. I 
> don't know why those appear in your build -- I can't reproduce the 
> problem here. The "WARNING" messages you're seeing are also due to the 
> whitespaces. For historical reasons, autotools configure takes any 
> parameters that are neither switches nor assignments and presumes that 
> they specify all three of build, host, and target. This syntax is 
> deprecated, and present only for compatibility. So, once you figure 
> out how to eliminate the whitespaces, those warnings will go away.
>
> It will be several days (if not weeks) before I can take a serious 
> look at this problem again. Sorry that we weren't able to get things 
> working very easily.
>
> /a
>
> Mandeep Ahuja wrote:
>
>> Hey adam,
>> thanks for all your help. I am close. Except one problem
>> ../ares/configure  --prefix=/usr/local --host=mips-linux CC= 
>> /home/ahuja/aksys/tools/linux/bin/mips_fp_le-gcc CXX= 
>> /home/ahuja/aksys/tools/linux/bin/mips_fp_le-g++ 
>> AR=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-ar 
>> RANLIB=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-ranlib
>>
>> You see the white space in CC= /home and in CXX= /home, that is 
>> causing trouble.
>>
>> Also, In this warning
>> configure: WARNING: you should use --build, --host, --target <----- 
>> How do I setup the target?
>> configure: WARNING: invalid host type: 
>> /home/ahuja/aksys/tools/linux/bin/mips_fp_le-gcc  <-- I think this is 
>> frm the white space
>>
>> I am using shared Libraries yes and distc yes
>>
>> thanks
>> Mandeep
>>
>>
>> Adam Roach wrote:
>>
>>> The attached patch allows you to set the name of the compiler prefix 
>>> separate from the name of the platform. Apply this to your tree and 
>>> verify that it works for you. If it appears to work (or, at least, 
>>> makes the problem better), I'll go ahead and commit it to the main 
>>> tree.
>>>
>>> /a
>>>
>>> On 4/28/08 3:22 PM, Mandeep Ahuja wrote:
>>>
>>>> Ok, I hope this will answer the question
>>>> Output of Ares config options:
>>>> --build=x86 --host=mips-linux 
>>>> CC=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-gcc 
>>>> AR=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-ar rcs 
>>>> CFLAGS=-D__DEBUG__ -Dassert=ASSERT 
>>>> -I/home/ahuja/aksys/phoneApp/shared -g -ggdb -O0  
>>>> RANLIB=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-ranlib
>>>>
>>>> Resip Config options are:
>>>> -C --build=x86 --host=mips-linux 
>>>> CXX=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-g++ 
>>>> CXXFLAGS=-D__DEBUG__ -Dassert=ASSERT 
>>>> -I/home/ahuja/aksys/phoneApp/shared -g -ggdb -O0  
>>>> --with-ares=/home/ahuja/aksys/phoneApp/libraries/dum/main/sip/contrib/ 
>>>> LDFLAGS=-L/home/ahuja/aksys/phoneApp/libraries/dum/main/sip/contrib/ares/mips 
>>>>
>>>>
>>>> The above is from resiprocate's first version 0.99 I think. I am 
>>>> trying to get the latest one running with the mips tools.
>>>>
>>>> Thanks for bearing with me Adam.
>>>>
>>>> Waiting....
>>>>
>>>> Adam Roach wrote:
>>>>
>>>>> On 4/28/08 2:00 PM, Mandeep Ahuja wrote:
>>>>>
>>>>>> Ok Let me get this right. Lets try where I dont have to use the 
>>>>>> autotools
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> I think you misunderstand what I'm asking. Ares uses autotools, so 
>>>>> we don't have any option here -- we need to be able to run 
>>>>> ./configure for ares so that ares can be built. I've not worked 
>>>>> with build environments in which the name of the compiler differed 
>>>>> from the name of the platform. It's just not a problem I've ever 
>>>>> encountered, so I don't know how to solve it. Apparently, you *do* 
>>>>> know how to solve it, because it's the environment you're working in.
>>>>>
>>>>> So.
>>>>>
>>>>> I think I can fix the problem you're encountering if you can 
>>>>> clearly, concisely, and accurately answer just one question: With 
>>>>> your environment, what would you literally type in to the 
>>>>> commandline to configure ares to build? (In your answer, include 
>>>>> the output of the configure command so I know what I should expect 
>>>>> to see).
>>>>>
>>>>> /a
>>>>>
>>>>>
>>>>>
>>>>>> (might see a problem again future)
>>>>>> --host=mips-linux
>>>>>> corss_compile = ~/tools/linux/bin/mips_fp_le-
>>>>>> the cross compiler is "mips_fp_le"
>>>>>> Also when i was trying to make 'rutil' it complained about not 
>>>>>> finding 'ostream' which is in
>>>>>> ~/tools/linux/target/user/include/g++-3/ directory.
>>>>>>
>>>>>> I hope that can be of some help
>>>>>> Mandeep
>>>>>>
>>>>>> Adam Roach wrote:
>>>>>>
>>>>>>> I'll see if I can fix this fairly quickly -- what are the exact 
>>>>>>> options that you would expect to pass to an autotools-generated 
>>>>>>> ./configure script to set the compiler correctly? Is it simply 
>>>>>>> "./configure --host=mips_fp_le"? I'll admit that my knowledge of 
>>>>>>> autotools is a bit meager; but, as far as I know, the only way 
>>>>>>> to trigger cross compilation with autotools is to pass it the 
>>>>>>> name of the architecture with the "--host" flag -- and it does 
>>>>>>> the same thing with it as the resip build system does: it 
>>>>>>> prepends it to the names of the various gnu toolchain binaries, 
>>>>>>> and tries it to see whether it works.
>>>>>>>
>>>>>>> In other words: I can split the target platform option into two 
>>>>>>> different options (target platform and cross-compiler prefix) if 
>>>>>>> that's what you need to suit your purposes, but I don't know 
>>>>>>> enough about the autotools systems that I need to pass options 
>>>>>>> into (such as ares) to know what to pass where and how.
>>>>>>>
>>>>>>> /a
>>>>>>>
>>>>>>> On 4/28/08 12:08 PM, Mandeep Ahuja wrote:
>>>>>>>
>>>>>>>> Thanks for the heads up Adam,
>>>>>>>> Here is the first problem
>>>>>>>> 1- The architecture-ostype (in my case mips-linux) does not 
>>>>>>>> match with platform string in the name of my cross compiler 
>>>>>>>> (mips_fp_le-gcc). I dont plan to change either of the names as 
>>>>>>>> I have lot going on already. What can I do to get around?
>>>>>>>> Here is a little sample output
>>>>>>>> mkdir -p contrib/ares-build.Linux.mips
>>>>>>>> cd contrib/ares-build.Linux.mips && \
>>>>>>>>  ../ares/configure   --host=mips-linux
>>>>>>>> configure: WARNING: If you wanted to set the --build type, 
>>>>>>>> don't use --host.
>>>>>>>>    If a cross compiler is detected then cross compile mode will 
>>>>>>>> be used.
>>>>>>>> Configuring ares 1.1.2
>>>>>>>> checking for a BSD-compatible install... /usr/bin/install -c
>>>>>>>> checking whether build environment is sane... yes
>>>>>>>> checking for gawk... gawk
>>>>>>>> checking whether make sets $(MAKE)... yes
>>>>>>>> checking for mips-linux-strip... no
>>>>>>>> checking for strip... strip
>>>>>>>> checking for mips-linux-gcc... no
>>>>>>>> checking for gcc... gcc
>>>>>>>> checking for C compiler default output file name... a.out
>>>>>>>> checking whether the C compiler works... yes
>>>>>>>> checking whether we are cross compiling... no
>>>>>>>> checking for suffix of executables...
>>>>>>>> checking for suffix of object files... o
>>>>>>>> checking whether we are using the GNU C compiler... yes
>>>>>>>> checking whether gcc accepts -g... yes
>>>>>>>> checking for gcc option to accept ANSI C... none needed
>>>>>>>> checking for style of include used by make... GNU
>>>>>>>> checking dependency style of gcc... gcc3
>>>>>>>> checking for a BSD-compatible install... /usr/bin/install -c
>>>>>>>> checking whether make sets $(MAKE)... (cached) yes
>>>>>>>> checking for mips-linux-ranlib... no
>>>>>>>> checking for ranlib... ranlib
>>>>>>>> checking build system type... i686-pc-linux-gnu
>>>>>>>> checking host system type... mips-unknown-linux-gnu
>>>>>>>>
>>>>>>>> Adam Roach wrote:
>>>>>>>>
>>>>>>>>> Mandeep Ahuja wrote:
>>>>>>>>>
>>>>>>>>>> I need the autotools scripts that you guys had earlier. 
>>>>>>>>>> Remember the 'use_autotools.sh' and 'auto_gen.sh'. I can't 
>>>>>>>>>> find them in the latest checkout. I think last time i checked 
>>>>>>>>>> out was in 2004. If noone has it will the old one work with 
>>>>>>>>>> the new revision. I am doing cross-compiling.
>>>>>>>>>>   
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> The autotools setup never really got completed (at least, not 
>>>>>>>>> to everyone's satisfaction), and has been pulled out of the 
>>>>>>>>> repository for a long time now. Even if you can find a copy, I 
>>>>>>>>> do _not_ suggest you use it. It is highly doubtful that it 
>>>>>>>>> will work with the current tree (which has been vigorously 
>>>>>>>>> reorganized since the last time anyone tried autotools) -- at 
>>>>>>>>> least, not without a lot of effort.
>>>>>>>>>
>>>>>>>>> You're not stuck, though. The current build system has pretty 
>>>>>>>>> good support for cross compilation using the gnu toolchain. 
>>>>>>>>> Run the configure script (in the root of the project tree); 
>>>>>>>>> when it asks which toolchain you plan on using, answer 
>>>>>>>>> "gnu-cross." It will then prompt you for the path to the cross 
>>>>>>>>> compiler and the name of the platform formatted as 
>>>>>>>>> architecture-ostype (e.g., "arm-linux"). This platform name 
>>>>>>>>> must match the platform string in the name of your cross 
>>>>>>>>> compiler. (i.e., if your cross compiler is called 
>>>>>>>>> "arm-linux-gcc", then your platform is called "arm-linux").
>>>>>>>>>
>>>>>>>>> If you have any problems with the cross-compilation support in 
>>>>>>>>> the existing build system, post here about it so we can try to 
>>>>>>>>> make things work better.
>>>>>>>>>
>>>>>>>>> /a
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> Index: configure
>>> ===================================================================
>>> --- configure    (revision 7651)
>>> +++ configure    (working copy)
>>> @@ -25,6 +25,7 @@
>>> VOCAL_COMPILE_TYPE := debug
>>> VOCAL_CROSS_ROOT := /skiff/local/bin
>>> CROSS_PLATFORM := arm-linux
>>> +CROSS_TOOL_PREFIX := arm-linux
>>> BUILD_SHARED_LIBS := no
>>> USE_DISTCC := no
>>> USE_CCACHE := no
>>> @@ -85,6 +86,8 @@
>>> #
>>> #   default     - Value to use by default
>>> #
>>> +#   evaldefault - Flag: if set, default is evaluated as perl statement
>>> +#
>>> #   validate    - Optional array of allowed values
>>> #
>>> #   predicate   - Optional logical test; if false, the user
>>> @@ -126,6 +129,14 @@
>>>     option      => 'with-cross-platform',
>>>   },
>>>   {
>>> +    name        => "CROSS_TOOL_PREFIX",
>>> +    description => "What is the prefix for the cross-compiler 
>>> binaries?",
>>> +    default     => "\$config{CROSS_PLATFORM}",
>>> +    evaldefault => 1,
>>> +    predicate   => "\$config{VOCAL_TOOLCHAIN_TYPE} =~ /cross/",
>>> +    option      => 'with-cross-tool-prefix',
>>> +  },
>>> +  {
>>>     name        => "BUILD_SHARED_LIBS",
>>>     description => "Should the resip libraries be built shared?",
>>>     default     => "no",
>>> @@ -281,7 +292,14 @@
>>> {
>>>   if (!exists($config{$parameter->{name}}))
>>>   {
>>> -    $config{$parameter->{name}} = $parameter->{default};
>>> +    if ($parameter->{evaldefault})
>>> +    {
>>> +      $config{$parameter->{name}} = eval($parameter->{default});
>>> +    }
>>> +    else
>>> +    {
>>> +      $config{$parameter->{name}} = $parameter->{default};
>>> +    }
>>>   }
>>>
>>>   if (exists($parameter->{predicate}) && 
>>> !eval($parameter->{predicate}))
>>> Index: build/Makefile.all
>>> ===================================================================
>>> --- build/Makefile.all    (revision 7651)
>>> +++ build/Makefile.all    (working copy)
>>> @@ -86,7 +86,10 @@
>>> ifeq ($(VOCAL_TOOLCHAIN_TYPE),gnu-cross)
>>> ARCH            := $(shell echo '$(CROSS_PLATFORM)' | sed 's/-.*//')
>>> OSTYPE          := $(shell echo '$(CROSS_PLATFORM)' | cut -f3- -d-)
>>> +ifndef OSTYPE
>>> +OSTYPE          := $(shell echo '$(CROSS_PLATFORM)' | cut -f2- -d-)
>>> endif
>>> +endif
>>>
>>> # Detect and normalize the OSTYPE
>>> ifndef OSTYPE
>>> Index: build/Makefile.tools
>>> ===================================================================
>>> --- build/Makefile.tools    (revision 7651)
>>> +++ build/Makefile.tools    (working copy)
>>> @@ -96,13 +96,16 @@
>>> ifndef CROSS_PLATFORM
>>> CROSS_PLATFORM = arm-linux
>>> endif
>>> +ifndef CROSS_TOOL_PREFIX
>>> +CROSS_TOOL_PREFIX = arm-linux
>>> +endif
>>>
>>> -CC        := $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-gcc
>>> -CXX        := $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-g++
>>> +CC        := $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-gcc
>>> +CXX        := $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-g++
>>> MKSHLIB        := $(CC) -fPIC -shared DEP        := $(CXX) 
>>> LINKER        := $(CXX) -AR        := 
>>> $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-ar
>>> +AR        := $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-ar
>>> ARFLAGS        = rv
>>> DFLAGS        = -MM
>>> DMANGLE        =
>>> @@ -115,10 +118,16 @@
>>> LD_STATIC       = -Wl,-Bstatic
>>> LD_DYNAMIC      = -Wl,-Bdynamic
>>> ARCH        = arm
>>> -CONFIGURE_ARGS    += --host=$(CROSS_PLATFORM)
>>> DFLAG_INTEGRATED = -MMD
>>> -RANLIB        = $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-ranlib
>>> +RANLIB        = $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-ranlib
>>>
>>> +# Pass the relevant parameters down to autotools configure scripts
>>> +CONFIGURE_ARGS    += --host=$(CROSS_PLATFORM)
>>> +CONFIGURE_ARGS    += CC=$(CC)
>>> +CONFIGURE_ARGS    += CXX=$(CXX)
>>> +CONFIGURE_ARGS    += AR=$(AR)
>>> +CONFIGURE_ARGS    += RANLIB=$(RANLIB)
>>> +
>>> Z = $(shell $(CC) -v 2>&1 | perl -ne 'if(/version ([0-9\.]+)/ && 
>>> ($$1 eq "2.96" || int($$1) > 2) ) {print "1\n";}')
>>> ifneq ($(Z),1)
>>> MAKE_SEPARATE_DEPENDENCY = 1
>>> @@ -134,13 +143,16 @@
>>> ifndef CROSS_PLATFORM
>>> CROSS_PLATFORM = arm-unknown-linux-gnu
>>> endif
>>> +ifndef CROSS_TOOL_PREFIX
>>> +CROSS_TOOL_PREFIX = arm-unknown-linux-gnu
>>> +endif
>>>
>>> -CC        := $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-gcc
>>> -CXX        := $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-g++
>>> +CC        := $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-gcc
>>> +CXX        := $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-g++
>>> MKSHLIB        := $(CC) -fPIC -shared DEP        := $(CXX) 
>>> LINKER        := $(CXX) -AR        := 
>>> $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-ar
>>> +AR        := $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-ar
>>> ARFLAGS        = rv
>>> DFLAGS        = -MM
>>> DMANGLE        =
>>> @@ -152,10 +164,18 @@
>>> COMPILE_SMALL_FLAG = -Os -fno-inline -fno-keep-static-consts
>>> LD_STATIC       = -Wl,-Bstatic
>>> LD_DYNAMIC      = -Wl,-Bdynamic
>>> -CONFIGURE_ARGS    += --host=$(CROSS_PLATFORM)
>>> DFLAG_INTEGRATED = -MMD
>>> -RANLIB        = $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-ranlib
>>> +RANLIB        = $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-ranlib
>>>
>>> +# Pass the relevant parameters down to autotools configure scripts
>>> +CONFIGURE_ARGS    += --host=$(CROSS_PLATFORM)
>>> +CONFIGURE_ARGS    += CC=$(CC)
>>> +CONFIGURE_ARGS    += CXX=$(CXX)
>>> +CONFIGURE_ARGS    += AR=$(AR)
>>> +CONFIGURE_ARGS    += RANLIB=$(RANLIB)
>>> +
>>> +export CROSS_COMPILE=$(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-
>>> +
>>> Z = $(shell $(CC) -v 2>&1 | perl -ne 'if(/version ([0-9\.]+)/ && 
>>> ($$1 eq "2.96" || int($$1) > 2) ) {print "1\n";}')
>>> ifneq ($(Z),1)
>>> MAKE_SEPARATE_DEPENDENCY = 1
>>>  
>>>
>>
>
>




More information about the resiprocate-devel mailing list