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 ?

>> 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