David, Other projects e.g. linux kernel sets CROSS_COMPILE, to specify the prefix for all executables used during compilation.
e.g. make CROSS_COMPILE=ia64-linux- will cause CC=ia64-linux-gcc OBJCOPY=ia64-linux-objcopy etc Could we adopt this convention? -Dmitry On 2012-11-02 06:39, David Holmes wrote: > On 2/11/2012 12:03 PM, BILL PITTORE wrote: >> On 11/1/2012 7:47 PM, David Holmes wrote: >>> On 2/11/2012 8:49 AM, Dmitry Samersoff wrote: >>>> David, >>>> >>>> Sorry, (my eyes) I misread if >>>> >>>> As far as I understand, cross compilation require explicit ALT_OBJCOPY. >>> >>> Yes. >>> >>>> Is there any defaults? >>> >>> No. The makefiles know nothing about the toolsets for cross-compiling. >> We set CC, CPP, CXX using COMPILER_PATH which gets us to the cross >> tools, why not go for OBJCOPY as well? It may or may not exist. Is that >> worse than the current situation? > > Fair point, we could just assume that when cross-compiling we find > objcopy in the same place as gcc etc. > > Thanks, > David > > >> bill >> >>> >>>> Does it make sense to warn if ALT_OBJCOPY isn't set? >>> >>> The build already reports: >>> >>> INFO: ENABLE_FULL_DEBUG_SYMBOLS=1 >>> INFO: no objcopy cmd found so cannot create .debuginfo files. >>> INFO: ENABLE_FULL_DEBUG_SYMBOLS=0 >>> >>> I could extend that to say: >>> >>> INFO: ENABLE_FULL_DEBUG_SYMBOLS=1 >>> INFO: no objcopy cmd found so cannot create .debuginfo files. You may >>> need to set ALT_OBJCOPY. >>> INFO: ENABLE_FULL_DEBUG_SYMBOLS=0 >>> >>> Thanks, >>> David >>>> >>>> -Dmitry >>>> >>>> On 2012-11-02 02:15, David Holmes wrote: >>>>> Thanks for the review Dmitry. >>>>> >>>>> On 1/11/2012 10:02 PM, Dmitry Samersoff wrote: >>>>>> David,s >>>>>> >>>>>> if we use host /usr/bin/objcopy for cross compiling, >>>>>> changes looks good for me. >>>>> >>>>> ??? We don't use host /usr/bin/objcopy for cross-compiling that is why >>>>> DEF_OBJCOPY is only set when not cross-compiling. >>>>> >>>>> Of course you can set ALT_OBJCOPY=/usr/bin/objcopy when >>>>> cross-compiling. >>>>> It probably won't work but you can do it. >>>>> >>>>> David >>>>> >>>>>> -Dmitry >>>>>> >>>>>> On 2012-11-01 07:41, David Holmes wrote: >>>>>>> No takers so far - don't be shy, it's not a difficult one I >>>>>>> promise :) >>>>>>> >>>>>>> Updated webrev: >>>>>>> http://cr.openjdk.java.net/~dholmes/8002034/webrev.01/ >>>>>>> >>>>>>> Because of the multiple sub-make invocations that occur during a >>>>>>> build >>>>>>> the FDS logic gets processed numerous times, many of which are not >>>>>>> needed and which might show confusing output (eg that FDS is enabled >>>>>>> when you have disabled it). So I added another conditional to at >>>>>>> least >>>>>>> check that BUILD_FLAVOR has been set - that excludes a couple of the >>>>>>> unnecessary executions. >>>>>>> >>>>>>> Thanks, >>>>>>> David >>>>>>> >>>>>>> On 31/10/2012 5:29 PM, David Holmes wrote: >>>>>>>> http://cr.openjdk.java.net/~dholmes/8002034/webrev/ >>>>>>>> >>>>>>>> This mainly addresses >>>>>>>> >>>>>>>> JDK-8002034 Allow Full Debug Symbols when cross-compiling >>>>>>>> >>>>>>>> The initial FDS work simply disables FDS when cross-compilation is >>>>>>>> involved. But we're now ready to deal with the cross-compilation >>>>>>>> case >>>>>>>> (and even if we weren't these changes would be fine anyway). So >>>>>>>> if FDS >>>>>>>> is initially enabled we will rely on ALT_OBJCOPY being set to the >>>>>>>> correct value for cross-compilation; and we don't set the default >>>>>>>> OBJCOPY in that case. So if you do nothing when cross-compiling >>>>>>>> OBJCOPY >>>>>>>> will be empty and that will cause the build to disable FDS, just >>>>>>>> as if >>>>>>>> the OBJCOPY command was not found. >>>>>>>> >>>>>>>> As this is the same code that causes: >>>>>>>> >>>>>>>> JDK-8001756 Hotspot makefiles report missing OBJCOPY command in the >>>>>>>> wrong circumstances >>>>>>>> >>>>>>>> I also fixed this by moving the OBJCOPY checks inside the >>>>>>>> ENABLE_FULL_DEBUG_SYMBOLS=1 conditional. Basically unless we are >>>>>>>> asking >>>>>>>> for FDS we shouldn't complain if the OBJCOPY command is not found. >>>>>>>> >>>>>>>> This will be pushed to the hotspot-emb repo as it is needed there >>>>>>>> ASAP. >>>>>>>> >>>>>>>> I'll be doing a similar change, under 8002040, for the JDK side of >>>>>>>> things. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> David >>>>>> >>>>>> >>>> >>>> >> -- Dmitry Samersoff Java development team, SPB04 * There will come soft rains ...