[PATCH xinit 1/3] Drop $RAWCPPFLAGS when generating startx
Hans de Goede
hdegoede at redhat.com
Thu Mar 27 04:39:18 PDT 2014
Hi,
On 03/26/2014 02:21 PM, Gaetan Nadon wrote:
> On 14-03-26 07:37 AM, Hans de Goede wrote:
>> Hi,
>>
>> On 03/25/2014 06:22 PM, Gaetan Nadon wrote:
>>> On 14-03-25 07:56 AM, Hans de Goede wrote:
>>>> startx.cpp contains things like #if defined(__SCO__), and
>>>> $RAWCPPFLAGS contains -undef causing these to not get set.
>>>>
>>>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>>>> ---
>>>> cpprules.in | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/cpprules.in b/cpprules.in
>>>> index 0931bee..781676a 100644
>>>> --- a/cpprules.in
>>>> +++ b/cpprules.in
>>>> @@ -15,4 +15,4 @@ CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
>>>> SUFFIXES = .cpp
>>>>
>>>> .cpp:
>>>> - $(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) $< | $(CPP_SED_MAGIC) > $@
>>>> + $(AM_V_GEN)$(RAWCPP) $(CPP_FILES_FLAGS) $< | $(CPP_SED_MAGIC) > $@
>>> 1. It looks like it has been this way for a very long time. Have you
>>> investigated why it isn't a problem today?
>> I've not investigated, but I assume it is not a problem today since most of the #ifdef-s
>> are for platforms which are not being used much (if at all) anymore.
>>
>> Note my main reasons for fixing this are:
>> 1) If we've #ifdef's on platform specific defines in there, they should work, otherwise
>> we should just rip them out.
> Yes.
>>
>> 2) The second patch in this patchset introduces a #ifdef __linux__ which won't work with
>> the -undef.
> I see the problem.
>>
>>> 2. This is going to change the xinitrc for Apple. How confident are you
>>> that the patch will not create a problem?
>>> I found on the net
>>> (http://arstechnica.com/civis/viewtopic.php?f=19&t=371721) a user
>>> posting his copy of xinitrc for Apple.
>>>
>>> if [ -f "$sysresources" ]; then
>>>
>>> xrdb -merge "$sysresources"
>>>
>>> fi
>>>
>>> When removing -undef, my guess is that the command will be "XRDB
>>> -nocpp -merge $sysresources". Right or wrong, I don't know.
>> Unless apple users have custom Xresources using #ifdef's or some such this
>> should not matter, so I believe this won't cause any issues. If we're
>> worried about this causing issues we could start with a patch removing
>> all the existing #ifdef blocks, since they have been dead code for a while
>> anyways.
> That would be prudent. Those who have specific platform skills could review.
> It also leaves a better trace in git as to what and why things have been
> done.
>>
>>> 3. As for SCO, this OS is no longer supported, so we will never know.
>> Right, as said we should consider ripping out all the existing #ifdef's first.
>>
>>> Take a look at app/xdm/config/Xsession.cpp.
>>> 4. Aside from "undef", there is the option "traditional" that the patch
>>> also throws away. It has to do with the treatment of whitespace.
>> Right, it introduces a lot of extra newlines, dropping this actually makes
>> the generated startx script nicer to read as there are no more unnecessary
>> large whitespace blocks
>>
>>> Any idea on what happens to other platforms and/or other non-gnu compilers?
>> No, I assume that other the some newlines disappearing there as well there
>> will be no impact, but only testing will tell for sure.
>>
>>> The -undef flag was added in Sept 2005. Are you running into a problem?
>> The problem is I cannot use #ifdef for the 2nd patch in this set without
>> fixing the -undef problem.
> Ok.
>>
>>> There is a mystery to be resolved...
>>> http://cgit.freedesktop.org/xorg/util/macros/commit/?id=d690e4a9febd07988d149a967791c5629c17b258
>>>
>>> If these defines have always been useless, a bigger cleanup could be done.
>> Agreed on the bigger cleanup, I guess I could do that first as a preparation
>> patch. Then effectively the only change the dropping of RAWCPPFLAGS will cause
>> is the dropping of the traditional option.
> Ok, it makes sense. Let's fix the cpp source first. The content of
> RAWCPPFLAGS vary by platform and compiler, so it is difficult to review.
So I've been working on this today, and startx.cpp is full of #ifdef -s not only
for sco but also for apple, linux, etc. Most of these are handling of platform
specific config-files. So we likely have not been getting any bugreports since
the defaults happen to work for most users just fine too (and apple X users likely
end up reporting the bug elsewhere anyways).
Still it seems wrong to me to just rip out all this special handling. I believe
most of it is still valid. So I'm going to do a new version of this patchset,
removing the SCO stuff, but leaving the rest in.
I'm also going to just drop -undef and keep -traditional to make sure that the
dropping of -traditional does not cause any undesirable side-effects.
Regards,
Hans
More information about the xorg-devel
mailing list