tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] flawed commit identified - regression in tinycc x86 assem


From: Michael Ackermann
Subject: [Tinycc-devel] flawed commit identified - regression in tinycc x86 assembly/pre-processor parser
Date: Sat, 23 Nov 2024 19:27:49 +0000

Good evenging,

the commit which introduced the regression in tinycc preprocessor/assembly
parser was identified:

08a4c52de39b202f02d1ec525c64336d11ad9ccf march 2024

I wouldn't know how to best revert/backout this commit; to my understanding
the desired parsing semantics introduced should apply to C/macro-definition
language context, but the parser picks up tokens inside .S assembly context
where '#' denotes a comment instead of pre-processing marcros, and by accident 
then causes the mentioned parsing error, which probably is incorrect behaviour
for a valid comment section inside assembly files.

An intermediate easy workaround to compile kernel was replacing the code snippet
inside linux-2.4.37.11/arch/i386/boot/setup.S
- # 64mb
+ # _64mb
and the tcc pre-processed output is still valid then and can be digested by
binutils-as with correct 16bit bootcode emitted.

Regards
aggi

P.S.
Maybe this problem is related to the issue...  error: invalid macro name '$'
https://lists.gnu.org/archive/html/tinycc-devel/2024-11/msg00015.html

On 2024-11-16 03:31, Michael Ackermann via Tinycc-devel wrote:
> Greetings.
> 
> While regression-testing tcc against linux-2.4.37.11 kernel compilation 
> another
> problem got introduced some time on tcc mob branch:
> 
> $ i386-tcc -E -P -I../linux/include setup.S \
> -D__ASSEMBLY__ -D__KERNEL__ -D__BIG_KERNEL__ -o setup.s
> 
> ### inside a comment section number parsing isn't ignored although it should 
> be:
> # Ye Olde Traditional Methode.  Returns the memory size (up to 16mb or
> # 64mb, depending on the bios) in ax. ### <- line 391
> mem88:
> 
> ### yields -> setup.S:391: error: invalid number
> 
> Although tcc doesn't support 16bit real-mode assembly, it was possible before
> to pre-process the mentioned assembly file with it and then dumping the
> pre-processed output into binutils-as.
> 
> The assembly parsing problem got introduced some time in between
> commit e7262accb6e6965452e7f82c0ff281ef8412af4d (march 2023,assembly parsing 
> OK)
> ... latest HEAD (2024, problem with assembly/pre-processing parsing FAILURE)
> 
> I could not in detail identify/bisect exactly which commit introduced the
> problem, nor haven't i got a patch to offer for it yet.
> Let me know if further details are necessary to re-produce the issue.
> Currently i'm idling in #tcc channel at OFTC.
> 
> Regards.
> aggi
> -- 

-- 

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]