Index: src/InitTweak/FixGlobalInit.cc
===================================================================
--- src/InitTweak/FixGlobalInit.cc	(revision 293dc1c9a88a6120c9da7e8d3566ea1feae53953)
+++ src/InitTweak/FixGlobalInit.cc	(revision be5e34b191df89bc3ee8bb1fb45fe9e4d11148d8)
@@ -183,4 +183,5 @@
 			} // if
 			if ( const ast::Stmt * ctor = ctorInit->ctor ) {
+				addDataSectionAttribute(mutDecl);
 				initStmts.push_back( ctor );
 				mutDecl->init = nullptr;
Index: src/InitTweak/FixInitNew.cpp
===================================================================
--- src/InitTweak/FixInitNew.cpp	(revision 293dc1c9a88a6120c9da7e8d3566ea1feae53953)
+++ src/InitTweak/FixInitNew.cpp	(revision be5e34b191df89bc3ee8bb1fb45fe9e4d11148d8)
@@ -864,4 +864,5 @@
 			if ( const ast::Stmt * ctor = ctorInit->ctor ) {
 				if ( objDecl->storage.is_static ) {
+					addDataSectionAttribute(objDecl);
 					// originally wanted to take advantage of gcc nested functions, but
 					// we get memory errors with this approach. To remedy this, the static
@@ -947,4 +948,5 @@
 						objDecl->name = objDecl->name + staticNamer.newName();
 						objDecl->mangleName = Mangle::mangle( objDecl );
+						objDecl->init = nullptr;
 
 						// xxx - temporary hack: need to return a declaration, but want to hoist the current object out of this scope
Index: src/InitTweak/InitTweak.cc
===================================================================
--- src/InitTweak/InitTweak.cc	(revision 293dc1c9a88a6120c9da7e8d3566ea1feae53953)
+++ src/InitTweak/InitTweak.cc	(revision be5e34b191df89bc3ee8bb1fb45fe9e4d11148d8)
@@ -1113,3 +1113,8 @@
 	}
 
+	void addDataSectionAttribute( ast::ObjectDecl * objDecl ) {
+		auto strLitT = new ast::PointerType(new ast::BasicType(ast::BasicType::Char));
+		objDecl->attributes.push_back(new ast::Attribute("section", {new ast::ConstantExpr(objDecl->location, strLitT, "\".data#\"", std::nullopt)}));
+	}
+
 }
Index: src/InitTweak/InitTweak.h
===================================================================
--- src/InitTweak/InitTweak.h	(revision 293dc1c9a88a6120c9da7e8d3566ea1feae53953)
+++ src/InitTweak/InitTweak.h	(revision be5e34b191df89bc3ee8bb1fb45fe9e4d11148d8)
@@ -119,4 +119,6 @@
 	void addDataSectonAttribute( ObjectDecl * objDecl );
 
+	void addDataSectionAttribute( ast::ObjectDecl * objDecl );
+
 	class InitExpander_old {
 	public:
