1 2 OpenBSD's default perl Config.pm includes -Bforcearchive in the link 3 flags for loadable extensions. 4 5 The way Tk build is supposed to work is that all the converted Tcl/Tk 6 .c files get compiled in pTk subdirectory and put in the archive library 7 libpTk.a . Then each of Tk widgets and sub-systems links their own 8 .o files and libpTk.a - with the intent of only picking the bits from 9 libpTk.a they need. But -Bforcearchive tells linker to include ALL 10 of the .o files in the .a file - which not only leads to huge loadables 11 full of unused code, but also gives multiple definitions 12 of symbols in Tk::Event which expects to be able to override some 13 of the generic routines. 14 15 So Tk/MMutil.pm attempts to remove the option from LDDLFLAGS when 16 perl's $^O eq 'openbsd'. 17