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 ? 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`" ------
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