MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.03k stars 19.12k forks source link

[BUG] Can't compile Marlin 2.0.2 #16691

Closed qwewer0 closed 4 years ago

qwewer0 commented 4 years ago

Configuration.zip

VS Code terminal output ``` In file included from Marlin\src\module/stepper.h:47:0, from Marlin\src\Marlin.cpp:37: Marlin\src\module/stepper/indirection.h:701:0: warning: "enable_Z" redefined #define enable_Z() do{ Z_enable(); Z2_enable(); Z3_enable(); Z4_enable(); }while(0) In file included from Marlin\src\Marlin.cpp:31:0: Marlin\src\Marlin.h:142:0: note: this is the location of the previous definition #define enable_Z() do{ Z_enable(); Z2_enable(); Z3_enable(); }while(0) In file included from Marlin\src\module/stepper.h:47:0, from Marlin\src\Marlin.cpp:37: Marlin\src\module/stepper/indirection.h:702:0: warning: "disable_Z" redefined #define disable_Z() do{ Z_disable(); Z2_disable(); Z3_disable(); Z4_disable(); CBI(axis_known_position, Z_AXIS); }while(0) In file included from Marlin\src\Marlin.cpp:31:0: Marlin\src\Marlin.h:143:0: note: this is the location of the previous definition #define disable_Z() do{ Z_disable(); Z2_disable(); Z3_disable(); CBI(axis_known_position, Z_AXIS); }while(0) In file included from Marlin\src\lcd/ultralcd.h:40:0, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:47:61: error: default argument given for parameter 1 of 'void manage_inactivity(bool)' [-fpermissive] void manage_inactivity(const bool ignore_stepper_queue=false); ^ In file included from Marlin\src\Marlin.cpp:31:0: Marlin\src\Marlin.h:47:6: note: previous specification in 'void manage_inactivity(bool)' here void manage_inactivity(const bool ignore_stepper_queue=false); ^~~~~~~~~~~~~~~~~ In file included from Marlin\src\lcd/ultralcd.h:40:0, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:68:106: error: default argument given for parameter 1 of 'void kill(const char*, const char*, bool)' [-fpermissive] void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^ In file included from Marlin\src\Marlin.cpp:31:0: Marlin\src\Marlin.h:325:6: note: previous specification in 'void kill(const char*, const char*, bool)' here void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^~~~ In file included from Marlin\src\lcd/ultralcd.h:40:0, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:68:106: error: default argument given for parameter 2 of 'void kill(const char*, const char*, bool)' [-fpermissive] void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^ In file included from Marlin\src\Marlin.cpp:31:0: Marlin\src\Marlin.h:325:6: note: previous specification in 'void kill(const char*, const char*, bool)' here void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^~~~ In file included from Marlin\src\lcd/ultralcd.h:40:0, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:68:106: error: default argument given for parameter 3 of 'void kill(const char*, const char*, bool)' [-fpermissive] void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^ In file included from Marlin\src\Marlin.cpp:31:0: Marlin\src\Marlin.h:325:6: note: previous specification in 'void kill(const char*, const char*, bool)' here void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^~~~ In file included from Marlin\src\lcd/ultralcd.h:40:0, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:69:43: error: default argument given for parameter 1 of 'void minkill(bool)' [-fpermissive] void minkill(const bool steppers_off=false); ^ In file included from Marlin\src\Marlin.cpp:31:0: Marlin\src\Marlin.h:326:6: note: previous specification in 'void minkill(bool)' here void minkill(const bool steppers_off=false); ^~~~~~~ compilation terminated due to -fmax-errors=5. *** [.pio\build\STM32F103RC_bigtree_512K\src\src\Marlin.cpp.o] Error 1 ```
kreuzhofer commented 4 years ago

Was able to compile Bugfix-2.0.x 20.01.28. Now I just need to wait for 2.0.3.

What did you do to make it compile. I cloned a fresh copy, used the Ender 3 configuration files and it does not build.

Even with default config, not using Ender 3 configs does not compile

rs-development commented 4 years ago

Same here, fresh copy does not compile with PlatformIO. This should be fixed!

qwewer0 commented 4 years ago

I usually don't update to Bugfix because of the potential bugs in that, that's why I waited for 2.0.2, but it still got one in.

why? that will be a frozen copy as soon its out and 2.0.x will move on

but your call

will close this one

I just cloned the latest Bugfix and my configs, it just worked. Don't know why wouldn't work for you.

What did you do to make it compile. I cloned a fresh copy, used the Ender 3 configuration files and it does not build.

Even with default config, not using Ender 3 configs does not compile

qwewer0 commented 4 years ago

If this is still a problem, then we need to reopen it.

will close this one

rs-development commented 4 years ago

Should it compile with the default config files included in 2.0.x? If not, can you provide yours for testing?

qwewer0 commented 4 years ago

Try Bugfix-2.0.x, my configs are in the first comment.

Should it compile with the default config files included in 2.0.x? If not, can you provide yours for testing?

rs-development commented 4 years ago

Try Bugfix-2.0.x, my configs are in the first comment.

Should it compile with the default config files included in 2.0.x? If not, can you provide yours for testing?

It does compile fine! I assumed 2.0.x is ahead of 2.0.2 but it is not. All good but maybe make sure future releases can be at least built. That is the point of a release in my opinion.

dshokouhi commented 4 years ago

I also just did a fresh build from bugfix-2.0.x and I get the exact same errors as noted here: https://github.com/MarlinFirmware/Marlin/issues/16691#issuecomment-579383660

rs-development commented 4 years ago

I also just did a fresh build from bugfix-2.0.x and I get the exact same errors as noted here: #16691 (comment)

e4eaf32b4 does compile fine for me with PlatformIO

Lord-Quake commented 4 years ago

The Bugfix-2.0.x is sound and this thread need not be reopened. For those still having a problem should open a new issue.

qwewer0 commented 4 years ago

True

The Bugfix-2.0.x is sound and this thread need not be reopened. For those still having a issue should open a new issue.

sjasonsmith commented 4 years ago

why? that will be a frozen copy as soon its out and 2.0.x will move on

A frozen version (that works) is exactly what most people need. As long as there is a stable released version, people should only need to use the bugfix branch if they actually need a bug fix or want to help out by testing the latest code. I feel it is incorrect to unconditionally encourage all users to use the unstable bugfix branch.

Lord-Quake commented 4 years ago

@sjasonsmith I agree completely as the situation with the philosophy used by Marlin is a bit unorthodox and strays from usual practices IMO. I think @thinkyhead should chime in on this and give his thoughts on the matter as I've also mentioned it in the past as well. Don't know however if the subject of discussion is placed here correctly.

boelle commented 4 years ago

I feel it is incorrect to unconditionally encourage all users to use the unstable bugfix branch.

i did not mean it like that, its more that people think the highest mumbers is the latest, but yes common sense should always be applied and people should try both bugfix 2.0.x and 2.0.2 (or whatever the highest number is)

boelle commented 4 years ago

not sure if this one is related but it might be https://github.com/MarlinFirmware/Marlin/issues/16709

Walstad83 commented 4 years ago

still get the same faults with 2.0.2

default argument given for parameter 1 of 'void manage_inactivity(bool)' [-fpermissive]
default argument given for parameter 1 of 'void kill(const char*, const char*, bool)' [-fpermissive]
default argument given for parameter 1 of 'void minkill(bool)' [-fpermissive]

going over 2 bugfix as a temporary solution as commented over here.

morganlowe commented 4 years ago
VS Code terminal output ``` Compiling .pio\build\LPC1768\src\src\feature\bedlevel\ubl\ubl.cpp.o In file included from Marlin\src\module/stepper.h:47, from Marlin\src\Marlin.cpp:37: Marlin\src\module/stepper/indirection.h:701: warning: "enable_Z" redefined #define enable_Z() do{ Z_enable(); Z2_enable(); Z3_enable(); Z4_enable(); }while(0) In file included from Marlin\src\Marlin.cpp:31: Marlin\src\Marlin.h:142: note: this is the location of the previous definition #define enable_Z() do{ Z_enable(); Z2_enable(); Z3_enable(); }while(0) In file included from Marlin\src\module/stepper.h:47, from Marlin\src\Marlin.cpp:37: Marlin\src\module/stepper/indirection.h:702: warning: "disable_Z" redefined #define disable_Z() do{ Z_disable(); Z2_disable(); Z3_disable(); Z4_disable(); CBI(axis_known_position, Z_AXIS); }while(0) In file included from Marlin\src\Marlin.cpp:31: Marlin\src\Marlin.h:143: note: this is the location of the previous definition #define disable_Z() do{ Z_disable(); Z2_disable(); Z3_disable(); CBI(axis_known_position, Z_AXIS); }while(0) Compiling .pio\build\LPC1768\src\src\feature\bedlevel\ubl\ubl_G29.cpp.o In file included from Marlin\src\lcd/ultralcd.h:40, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:45:1: error: default argument given for parameter 1 of 'void idle(bool)' [-fpermissive] ); ^ In file included from Marlin\src\Marlin.cpp:31: Marlin\src\Marlin.h:41:6: note: previous specification in 'void idle(bool)' here void idle( ^~~~ In file included from Marlin\src\lcd/ultralcd.h:40, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:47:61: error: default argument given for parameter 1 of 'void manage_inactivity(bool)' [-fpermissive] void manage_inactivity(const bool ignore_stepper_queue=false); ^ In file included from Marlin\src\Marlin.cpp:31: Marlin\src\Marlin.h:47:6: note: previous specification in 'void manage_inactivity(bool)' here void manage_inactivity(const bool ignore_stepper_queue=false); ^~~~~~~~~~~~~~~~~ In file included from Marlin\src\lcd/ultralcd.h:40, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:68:106: error: default argument given for parameter 1 of 'void kill(const char*, const char*, bool)' [-fpermissive] void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^ In file included from Marlin\src\Marlin.cpp:31: Marlin\src\Marlin.h:325:6: note: previous specification in 'void kill(const char*, const char*, bool)' here void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^~~~ In file included from Marlin\src\lcd/ultralcd.h:40, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:68:106: error: default argument given for parameter 2 of 'void kill(const char*, const char*, bool)' [-fpermissive] void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^ In file included from Marlin\src\Marlin.cpp:31: Marlin\src\Marlin.h:325:6: note: previous specification in 'void kill(const char*, const char*, bool)' here void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^~~~ In file included from Marlin\src\lcd/ultralcd.h:40, from Marlin\src\Marlin.cpp:34: Marlin\src\lcd/../MarlinCore.h:68:106: error: default argument given for parameter 3 of 'void kill(const char*, const char*, bool)' [-fpermissive] void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^ In file included from Marlin\src\Marlin.cpp:31: Marlin\src\Marlin.h:325:6: note: previous specification in 'void kill(const char*, const char*, bool)' here void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false); ^~~~ compilation terminated due to -fmax-errors=5. *** [.pio\build\LPC1768\src\src\Marlin.cpp.o] Error 1 ======================================================================== [FAILED] Took 5.21 seconds ======================================================================== Environment Status Duration ---------------------------- -------- ------------ megaatmega2560 IGNORED megaatmega1280 IGNORED rambo IGNORED FYSETC_F6_13 IGNORED FYSETC_F6_14 IGNORED sanguino_atmega644p IGNORED sanguino_atmega1284p IGNORED melzi IGNORED melzi_optiboot IGNORED at90usb1286_cdc IGNORED at90usb1286_dfu IGNORED DUE IGNORED DUE_USB IGNORED DUE_debug IGNORED LPC1768 FAILED 00:00:05.211 ```

Failed, downloaded again this morning. So where's the old versions?

Lord-Quake commented 4 years ago

You are using an outdated version of Marlin firmware which will cause the errors you are witnessing.

morganlowe commented 4 years ago

You are using an outdated version of Marlin firmware which will cause the errors you are witnessing.

2.0.2 downloaded from https://marlinfw.org/meta/download/ is an old version? I don't think so, unless they aren't keeping the website updated. Got any more info?

Now Marlin 2.0.1 compiled just fine. I had a copy of it around from some of the other printers.

Lord-Quake commented 4 years ago

It's been posted numerous times in this thread which version is the latest one to use.

I will quote my own post from above:

2.0.2 is a freezed release. It will not be changed. If you want the latest working release you will need to use Bugfix-2.0.x (https://github.com/MarlinFirmware/Marlin/archive/bugfix-2.0.x.zip) that has all the issues mentioned in this thread fixed. So.... download it, use the configs found here https://github.com/MarlinFirmware/Configurations , Change them accordingly, install the FW on your printer and enjoy.

morganlowe commented 4 years ago

Ah right, I missed that skimming over this monster. I'll stick with 2.0.1 for now, I don't feel like messing around with a nightly and a mod on these machines as they are in production.

Thanks!

thinkyhead commented 4 years ago

Sorry about that. There was a merge problem that left some old files in place instead of deleting them! It is fixed now. Just re-download 2.0.2.

dok-net commented 4 years ago

@thinkyhead You got 8.6k forks. I am not quite innocent with my own repos, but then, I have nowhere as many users. Are you aware that force-pushing branches or changing tags causes havoc for all clones of a repository? Like me, I now have to delete the 2.0.2 tag, otherwise, I would never see which commit you have tagged now after the fix. I've noticed before that you have been force-pushing on release, that's bad git practice on a public repository. In this current case, as things have been done, you should probably still throw a 2.0.3 release tag.

On another note, have you thought about using the new (https://github.com/MarlinFirmware/Configurations) as a submodule in (https://github.com/MarlinFirmware/Marlin)? I know that there are no "perfect" solutions to version-dependeny between not-quite-loosely coupled projects using git alone, but right now, I think this will give everyone a headache, once a change in Marlin causes a cascade into Configurations, automated or manual, done by you - thanks for that - it becomes unnecessarily hard for anyone to figure out which commit of either repo belongs to the other, until the next release tag is attached. Am I stating myself clear or should I elaborate more on this?

So thanks for this great software, the war that broke out here over a troubled release, and those strange suggestions to "just" switch to unstable, should raise some eyebrows over what the QA for releases actually is. I'd say, gathering bug reports on a release version is fine, but then you can be brave enough to admit and assign a new release shortly after, if there's something broken - moving the tag makes many even more miserable, and in history, it becomes a riddle what the issue and PR discussions where all about in the first place :-) :-)

dok-net commented 4 years ago

@thinkyhead BTW : the config directory now is not empty, again... another merge fail? #16724

Lord-Quake commented 4 years ago

I this current case, as things have been done, you should probably still throw a 2.0.3 release tag.

That would be my expectation as well.

github-actions[bot] commented 4 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.