<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi there,<br>
    </p>
    <p>I am experiencing bird throwing a <FATAL> Unknown character
      error on my configuration files.<br>
      I suspect this might be related to CRLF vs LF, as all the
      positions it reports unknown character seems to be EOL or blank
      spaces. I should mention I am currently writing my configuration
      on a Windows machine, but it has passed between Linux and Windows
      a couple times.<br>
    </p>
    <p>As an example, trying to start BIRD 3.1.0 on an Alpine Linux edge
      box gives the following:<br>
    </p>
    <pre>ns2:~# bird
bird: 2025-05-20 18:39:55.659 [0001] <FATAL> /etc/bird.d/defines/constants.def:2:31 Unknown character
ns2:~# head /etc/bird.d/defines/constants.def
# Local preference values
define LP_UPSTREAM      = 100;
define LP_PEER          = 200;
define LP_DOWNSTREAM    = 300;
define LP_OTHER         = 150;
# ASNs
define AS_SELF          = 209718;
define AS_BOGON         = [
   0,
ns2:~#

if I merge the second line with the first line to look like this:
define LP_UPSTREAM      = 100;define LP_PEER          = 200;

I get

ns2:~# bird
bird: 2025-05-20 18:41:02.547 [0001] <FATAL> /etc/bird.d/defines/constants.def:2:61 Unknown character

Similarly, on another box running Debian 12 with the pkg.labs.nic.cz repository, on BIRD 3.1.1:
bird3:~# bird
bird: 2025-05-20 18:42:01.451 [0001] <FATAL> /etc/bird/bird.conf:1:26 Unknown character
bird3:~# head /etc/bird/bird.conf
router id 172.30.187.148;

log "/var/log/bird.log" { error };

ipv6 table master6;
ipv4 table master4;

include "filters/netlist/*.list";
include "filters/AS.list";
include "define/*.def";
bird3~# 

Any suggestions would be welcome, as I am currently in the process of refractoring my routers from BIRD1 to BIRD3, and this has put me at a bit of a standstill. :)

Kind regards, and thank you in advance for any response,
Jori Vanneste / Tyrasuki
</pre>
  </body>
</html>