Bug 791 - make crashes if Makefile uses += operator.
: make crashes if Makefile uses += operator.
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/make)
: unstable
: all Linux
: P4 critical
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2002-04-07 09:55 by
Modified: 2003-08-25 15:18 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2002-04-07 09:55:21
1. make ломается при использовании некоторых специфи�ных
конструкци . (Пример в Steps To Reproduce взят из реального 
Makefile, и свед#н к минимуму для демонстрации ошибки)
2. Даже если бы он не ломался, результат, которы  он успевает
выдать, неправильны .

---
1. В Makefile:
CFLAGS := ccc

all: CFLAGS += aaa
all:
    echo $(CFLAGS)

2. Запуск 
$ make
echo ccc aaa
ccc aaa
Здесь вс# в порядке.

3. Запуск
$ make CFLAGS=bbb
echo bbb bbb
make: expand.c:489: allocated_variable_append: Assertion
`current_variable_set_list->next != 0\' failed.
zsh: 2857 abort      make CFLAGS=bbb

Здесь должен был написать echo bbb aaa и не сломаться.
---
------- Comment #1 From 2002-04-10 13:41:39 -------
Replace
all: CFLAGS += aaa
construction with simple
CFLAGS += aaa
------- Comment #2 From 2002-04-10 13:41:39 -------
Replace
all: CFLAGS += aaa
construction with simple
CFLAGS += aaa
------- Comment #3 From 2002-04-10 20:30:02 -------
Решение не верное. Во-первых падать не должно в любом случае.
Во-вторых конструкция абсолюьно правильна и законна. Она описана
в info make/Using Variables/Target-specific.

Для наглядности приведу чуть более полный пример:

CFLAGS := ccc

all: linux
  echo $(CFLAGS)

linux: CFLAGS += bbb

linux:
  echo yyy

msdos: CFLAGS += ccc

msdos:
  echo zzz
------- Comment #4 From 2002-04-10 20:30:02 -------
Решение не верное. Во-первых падать не должно в любом случае.
Во-вторых конструкция абсолюьно правильна и законна. Она описана
в info make/Using Variables/Target-specific.

Для наглядности приведу чуть более полный пример:

CFLAGS := ccc

all: linux
  echo $(CFLAGS)

linux: CFLAGS += bbb

linux:
  echo yyy

msdos: CFLAGS += ccc

msdos:
  echo zzz
------- Comment #5 From 2002-09-16 21:19:00 -------
Fixed in make-3.79.1-ipl6mdk
------- Comment #6 From 2002-09-16 21:19:00 -------
Fixed in make-3.79.1-ipl6mdk
------- Comment #7 From 2002-09-29 01:33:12 -------
Why not close resolved problem?
------- Comment #8 From 2002-09-29 01:33:12 -------
Why not close resolved problem?