On 2024-05-23 05:01, Richard Biener wrote:
On Thu, May 23, 2024 at 5:50 AM Peter Damianov <peter0...@disroot.org> wrote:

By default, git has the "autocrlf" """feature""" enabled. This causes the files to have CRLF line endings when checked out on windows, which in the case of
configure, causes confusing errors like:

./gcc/configure: line 14: $'\r': command not found
./gcc/configure: line 29: syntax error near unexpected token `newline'
'/gcc/configure: line 29: `     ;;

when it is invoked.

Any files damaged in this way can be fixed with:
$ git config core.autocrlf false
$ git reset
$ git checkout .

But, it's better to simply avoid this problem in the first place.
This behavior is never helpful or desired for gcc.

For files added/edited on Windows does this then also strip the \r
(upon which action?)?  Otherwise I think this looks good but I'm not
a git expert.
From what I can tell, the \r doesn't get stripped from the files, but the commit itself acts as if it isn't there. In the working directory, if an editor introduces a CRLF it remains, but any commits created won't include it.

I am finding the git documentation a bit confusing on this point though, so I'm not certain.
I'm far from a git export as well.

I checked and I couldn't find any CRLFs in gcc right now.
I tried the commands here:
https://git-scm.com/docs/gitattributes

$ git add --renormalize .
$ git status        # Show files that will be normalized

And git status showed no changes.

As far as I can tell, this change is okay. I would still feel more confident if others looked at it, though.

Thanks,
Peter D.

Richard.

Signed-off-by: Peter Damianov <peter0...@disroot.org>
---
 .gitattributes | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.gitattributes b/.gitattributes
index e75bfc595bf..1e116987c98 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -8,3 +8,6 @@ ChangeLog whitespace=indent-with-non-tab,space-before-tab,trailing-space
 # Use together with git config diff.md.xfuncname '^\(define.*$'
 # which is run by contrib/gcc-git-customization.sh too.
 *.md diff=md
+
+# Disable lf -> crlf translation on windows.
+* -crlf
--
2.39.2

Reply via email to