Seema Alevoor wrote:
>
>
> On 02/26/09 06:27, Jeff Trawick wrote:
>> Seema Alevoor wrote:
>>>
>>> Jeff Trawick wrote:
>>>> Seema Alevoor wrote:
>>>>>
>>>>>
>>>>> On 02/24/09 21:22, Jeff Trawick wrote:
>>>>>> Seema Alevoor wrote:
>>>>>>>
>>>>>>>
>>>>>>> On 02/24/09 06:29, Jeff Trawick wrote:
>>>>>>>> Seema Alevoor wrote:
>>>>>>>>> Please review the webrev at 
>>>>>>>>> http://cr.opensolaris.org/~seema/6782613/
>>>>>>>>>
>>>>>>>>> Main changes:
>>>>>>>>> * --cflags includes CFLAGS and EXTRA_CFLAGS
>>>>>>>>> * --link-ld and --link-libtool options includes --ldflags 
>>>>>>>>> option value.
>>>>>>>>>
>>>>>>>> These all sound like APR fixes, and not issues with our 
>>>>>>>> integration. Is that right? What was broken? I just see the 
>>>>>>>> -m32/-m64 issue in the CR.
>>>>>>>>
>>>>>>> Evaluation has details about why --ldflags change was necessary.
>>>>>>>
>>>>>>>> I understand that --cflags without the user-specified CFLAGS 
>>>>>>>> broke with 64-bit builds, and I've posted to dev at apr asking 
>>>>>>>> about the history (it is a hindrance people have put up with 
>>>>>>>> for too long).
>>>>>>
>>>>>> According to a highly esteemed APR colleague, the usual solution 
>>>>>> for 64-bit builds, and ABI issues in general, is to include such 
>>>>>> flags in CC.  CFLAGS may include flags not appropriate to pass on 
>>>>>> to applications.  I've tweaked my personal Apache/APR build 
>>>>>> scripts to move "-m64" from CFLAGS to CC, and can avoid the ugly 
>>>>>> "apxs -Wl,-m64 -Wc,-m64 ..." hack, and apr-1-config output looks 
>>>>>> good too.
>>>>>>
>>>>>> For our build we own all these settings and can determine whether 
>>>>>> we only include items in CFLAGS that can be passed on to 
>>>>>> applications so the choice isn't absolutely critical, but it 
>>>>>> would be great to follow the normal path.
>>>>>>
>>>>> For our builds, common flags are defined in the master makefile 
>>>>> and they are all
>>>>> part of CFLAGS variable.
>>>>
>>>> Okay, so we clearly have to do something out of the ordinary.
>>>>
>>>> I'd rather see us edit the --cc value in apr-1-config to match a 
>>>> recommended APR build than extend the meaning of 
>>>> --cflags/--cppflags in both apr-1-config and apu-1-config.
>>>>
>>> When we use libtool to compile a module, it will use build time 
>>> CFLAGS. Shouldn't the user be exposed to same set of flags while 
>>> using apr-1-config/apu-1-config ?
>> The apr-1-config flags seem safer, since as we bump up optimization 
>> on our code (verified by our testing) we don't affect the 
>> optimization of the user's code, possibly breaking it or rendering it 
>> difficult to debug.
>>
>> I don't know this with absolute certainty, but in general I trust 
>> that what's good for APR on other platforms is good for OpenSolaris too.
>>
>> I did eyeball the compile difference between apxs (which uses 
>> libtool) vs. building the command using apr-1-config and didn't 
>> notice anything harmful.
>>
>>
> So, you are suggesting that we change
> 1. the --cc option to include the essential build time CFLAGS
> 2. retain apr-1-config's CFLAGS as EXTRA_CFLAGS (back out the --cflags 
> and --cppflags changes)
> 3. no change to libtool flags ,
> right ?

right

This should bring us in alignment with a normal APR build.

For CC, the only essential build time flag missing AFAICT is -m64.  It 
is in CFLAGS for us because our build setup doesn't follow the 
recommended APR mechanism -- setting CC to "cc -m64" for 64-bit builds.


>
>>> Or are you suggesting that we change the libtool flags, too ?
>>>>
>>>>>
>>>>>> If for some reason CC can't include -m64/-m32 because of our own 
>>>>>> build requirements, it could be patched into apr-1-config's CC in 
>>>>>> lieu of the existing patch for CFLAGS and CPPFLAGS.
>>>>>>
>>>>>>>>
>>>>>>>> Why should --link-ld and --link-libtool include the --ldflags 
>>>>>>>> value too?
>>>>>>>>
>>>>>>> This is related to CR 6772796.
>>>>>>
>>>>>> I'd expect that the user needs to call "apr-1-config --ldflags" 
>>>>>> themselves when putting together the command-line.
>>>>>>
>>>>> I think more common usage is to call "apu-1-config --link-(libtool 
>>>>> | ld) --libs" .
>>>>> It could be because of the Usage text.
>>>>
>>>> I didn't mean "--ldflags" instead of "--link-(libtool | ld) 
>>>> --libs"; I meant in addition to.  The variables have different 
>>>> meanings.  The help output shows building a list of required 
>>>> libraries via "apu-1-config --link-(libtool | ld) --libs".  It also 
>>>> says the application should use the --ldflags value too.
>>>>
>>>>>
>>>>>> --link-ld and --link-libtool specify the arguments for referring 
>>>>>> to the library, for when ld is used directly or for when libtool 
>>>>>> is used.
>>>>>>
>>>>>> I'm having trouble reproducing that Solaris 10 CR.  I would think 
>>>>>> that /usr/sfw/lib/libexpat would be in the default search path.  
>>>>>
>>>>> It will not be in the system default search path.
>>>>>
>>>>>> "apr-1-config --ldflags" is empty anyway (using the GA build on 
>>>>>> Solaris 10 or 2008.11).
>>>>>
>>>>> "apu-1-config --ldflags" on S10 has /usr/sfw/lib
>>>>> On OpenSolaris, it will be empty. But earlier, even on 
>>>>> OpenSolaris, some dependent libs were in /usr/sfw/lib.
>>>>
>>>> Oops, I was checking apr-1-config instead of apu-1-config; I now 
>>>> follow you with how implicitly adding the --ldflags will make a 
>>>> difference with apu-1-config; I just don't think it is appropriate, 
>>>> since the application's build process is supposed to query 
>>>> --ldflags on its own.
>>>>
>>> Then, do you think we should change the 'Usage' text to highlight 
>>> its usage while linking ?
>>> ------
>>> When linking with libtool, an application should do something like:
>>>  APR_LIBS="`apr-1-config --link-libtool --ldflags --libs`"
>>> or when linking directly:
>>>  APR_LIBS="`apr-1-config --link-ld --ldflags --libs`"
>>> ------
>>
>> "--ldflags" doesn't give you libraries, right?
> Right, but includes the lib path (like 'apr-1-config --link-libtool').
>
>> APR_LIBS is getting set to a list of libraries in the documented 
>> invocations
>>
> Fine. I will back out the --ldflags changes.
>
> Thanks,
> Seema.
>
>>>
>>>
>>> Thanks,
>>> Seema.
>>>
>>>>>>> Why is the following change needed? (add -L$libdir if apr-1-config
>>>>>>>> hasn't been installed to its usual place)
>>>>>>>
>>>>>>> When the command "apr-1-config --link-ld --libs" is run from the 
>>>>>>> proto area, it should not
>>>>>>> include the runpath value as it points to the proto area.
>>>>>>> This is similar to the --link-libtool change.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Seema.
>>>>>>>
>>>>>>>>
>>>>>>>> ++        if test -n "$install_root"; then
>>>>>>>> ++            flags="$flags -L$libdir -l${APR_LIBNAME}"
>>>>>>>> ++        else
>>>>>>>> ++            flags="$flags -L$libdir -R$libdir -l${APR_LIBNAME}"
>>>>>>>> ++        fi
>>>>>>
>>>>>> _______________________________________________
>>>>>>
>>>>>>
>>>>>> webstack-discuss mailing list
>>>>>> webstack-discuss at opensolaris.org
>>>>>> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss
>>>>
>>>> _______________________________________________
>>>>
>>>>
>>>> webstack-discuss mailing list
>>>> webstack-discuss at opensolaris.org
>>>> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss
>>
>> _______________________________________________
>>
>>
>> webstack-discuss mailing list
>> webstack-discuss at opensolaris.org
>> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss


Reply via email to